正则问题求教 <dl class="w1" style="width:500px"><dt>转正工资:</dt><dd>2000-3000元<!--2000-3000元/月 -->,试用期薪资60%</dd></dl>我想取<dd>..</dd>之间非<!-- -->中的内容,用[^...]好像不好写,我知道可以先把<!-- -->中内容替换掉再进行匹配。除此外有没有只用一个正则就能匹配成功的? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 /<dd>(.*?)(?:<\!\-\-.*?\-->)(.*?)/ius /<dd>(.*?)(?:<\!\-\-.*?\-->)(.*?)<\/dd>/ius chinmo你这个正则我怎么试不成功,你测试了吗 $s=<<<html<dl class="w1" style="width:500px"><dt>转正工资:</dt><dd>2000-3000元<!--2000-3000元/月 -->,试用期薪资60%</dd></dl>html;preg_match('/<dd>(.+?)<\!--.+?-->(.+?)<\/dd>/s',$s,$m);echo $m[1].$m[2];2000-3000元,试用期薪资60% 那我不知道你怎么测试的了$s='<dl class="w1" style="width:500px"><dt>转正工资:</dt><dd>2000-3000元<!--2000-3000元/月 -->,试用期薪资60%</dd></dl>';preg_match('/<dd>(.*?)(?:<\!\-\-.*?\-->)(.*?)<\/dd>/ius',$s,$m);echo $m[1].$m[2];反正我测试的没问题 $s='<dl class="w1" style="width:500px"><dt>转正工资:</dt><dd>2000-3000元<!--2000-3000元/月 -->,试用期薪资60%</dd></dl>';preg_match('/<dd>(.*?)(?:<\!\-\-.*?\-->)(.*?)<\/dd>/ius',$s,$m);echo $m[1].$m[2];结果截图: preg_match("/(.*?)<!--(.*?)-->(.*?)/", $str,$arr);echo $arr[2]; /<dd>(.*?)(?:<\!\-\-.*?\-->)(.*?)<\/dd>/isu 修饰符只对 utf-8 编码数据有效况且你也没有对中文进行处理其实这样不也很简单?preg_match('/<dd>(.*?)<\/dd>/is',$s,$m);echo strip_tags($m[1]); 难怪呢,我刚刚是gbk编码,难怪会显示不出来 xuzuning的方法不错,原来PHP还有strip_tags这个函数,真是方便多了。 如何获取http请求后,返回的头部信息 php模糊字符串替换问题。。。。。。。。 又见编码问题,唉... count()? 请各位高手过来讨论一下,我是初学php 一个客户要求页面有简繁两个版本,请教大家 error_reporting(7)后不再会记录错误日志了吗? 要写一个给PHP调用的接口,应该写成什么样子? PHP的GD库怎么显示中文? 寻求合作者开发一套网络论坛,有兴趣的朋友进来看一下 网站转移新空间问题 为什么用WHILE不能遍历输出表
<dl class="w1" style="width:500px">
<dt>转正工资:</dt>
<dd>2000-3000元
<!--2000-3000元/月 -->
,试用期薪资60%
</dd>
</dl>
html;
preg_match('/<dd>(.+?)<\!--.+?-->(.+?)<\/dd>/s',$s,$m);
echo $m[1].$m[2];
2000-3000元,试用期薪资60%
<dt>转正工资:</dt>
<dd>2000-3000元
<!--2000-3000元/月 -->
,试用期薪资60%
</dd>
</dl>';
preg_match('/<dd>(.*?)(?:<\!\-\-.*?\-->)(.*?)<\/dd>/ius',$s,$m);
echo $m[1].$m[2];反正我测试的没问题
<dt>转正工资:</dt>
<dd>2000-3000元
<!--2000-3000元/月 -->
,试用期薪资60%
</dd>
</dl>';
preg_match('/<dd>(.*?)(?:<\!\-\-.*?\-->)(.*?)<\/dd>/ius',$s,$m);
echo $m[1].$m[2];
结果截图:
echo $arr[2];
u 修饰符只对 utf-8 编码数据有效
况且你也没有对中文进行处理其实这样不也很简单?
preg_match('/<dd>(.*?)<\/dd>/is',$s,$m);
echo strip_tags($m[1]);