正则问题求教
时间:2021-07-01 10:21:17
帮助过:8人阅读
- 转正工资:
- 2000-3000元,试用期薪资60%
我想取
..之间非中的内容,用[^...]好像不好写,我知道可以先把中内容替换掉再进行匹配。除此外有没有只用一个正则就能匹配成功的?
回复讨论(解决方案)
/
(.*?)(?:<\!\-\-.*?\-->)(.*?)/ius
/
(.*?)(?:<\!\-\-.*?\-->)(.*?)<\/dd>/ius 先匹配出来,然后再替换掉可能效率还高一些。
chinmo你这个正则我怎么试不成功,你测试了吗
$s=<<
转正工资:2000-3000元,试用期薪资60%html;preg_match('/
(.+?)<\!--.+?-->(.+?)<\/dd>/s',$s,$m);echo $m[1].$m[2];
2000-3000元
,试用期薪资60%
chinmo你这个正则我怎么试不成功,你测试了吗
那我不知道你怎么测试的了
$s='
- 转正工资:
- 2000-3000元
,试用期薪资60%
';
preg_match('/(.*?)(?:<\!\-\-.*?\-->)(.*?)<\/dd>/ius',$s,$m);
echo $m[1].$m[2];
反正我测试的没问题
$s='
- 转正工资:
- 2000-3000元,试用期薪资60%
';preg_match('/(.*?)(?:<\!\-\-.*?\-->)(.*?)<\/dd>/ius',$s,$m);echo $m[1].$m[2];
结果截图:
preg_match("/(.*?)(.*?)/", $str,$arr);
echo $arr[2];
/
(.*?)(?:<\!\-\-.*?\-->)(.*?)<\/dd>/is
u 修饰符只对 utf-8 编码数据有效
况且你也没有对中文进行处理
其实这样不也很简单?
preg_match('/(.*?)<\/dd>/is',$s,$m);
echo strip_tags($m[1]); 难怪呢,我刚刚是gbk编码,难怪会显示不出来
xuzuning的方法不错,原来PHP还有strip_tags这个函数,真是方便多了。