正则匹配,怎么匹配出来空的

standford 2011-12-16 10:46:52
<DIV class="jingbian_astro04 clear">
<P>1、在人群里,你的话总是不多?</P>
<P><SPAN><A href="http://astro.women.sohu.com/20100603/n272544016_3.shtml"
target=_self>A、No</A></SPAN></P>
<P><SPAN><A href="http://astro.women.sohu.com/20100603/n272544016_2.shtml"
target=_self>B、Yes</A></SPAN></P>
</DIV>


我写的代码:
$p_list='/\<DIV class\="jingbian_astro04 clear"\>(.*)';
$p_list.='\s+\<P\>(.*)\<\/P\>';
$p_list.='\<P\>\<SPAN\>\<A href="(.*)"';
$p_list.='target=\_self\>(.*)\<\/A\>\<\/SPAN\>\<\/P\>';
$p_list.='\s+\<\/DIV\>/';
...全文
247 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
standford 2011-12-16
  • 打赏
  • 举报
回复
哦,高手就是高手,谢谢你。又学会了点
ohmygirl 2011-12-16
  • 打赏
  • 举报
回复
原串中的<p><span>。。这段出现了两次,你只匹配了一次。所以匹配不到。而且不该转义的地方你全转义了。

$p_list='/<DIV class="jingbian_astro04 clear">(.*)\s+';
$p_list.='<P>(.*)<\/P>\s+';
$p_list.='<P><SPAN><A href="(.*)"\s+';
$p_list.='target=_self>(.*)<\/A><\/SPAN><\/P>\s+';
$p_list.='<P><SPAN><A href="(.*)"\s+';
$p_list.='target=_self>(.*)<\/A><\/SPAN><\/P>\s+';
$p_list.='<\/DIV>/isU';

preg_match_all($p_list,$html,$matches);
print_r($matches);
standford 2011-12-16
  • 打赏
  • 举报
回复
还是空白
xiachao2008 2011-12-16
  • 打赏
  • 举报
回复
$p_list='/<DIV class="jingbian_astro04 clear">(.*)';
$p_list.='s+<P>(.*)<\/P>';
$p_list.='<P><SPAN><A href="(.*)"';
$p_list.='target=_self>(.*)<\/A><\/SPAN><\/P>';
$p_list.='s+<\/DIV>/';

这样试试

20,359

社区成员

发帖
与我相关
我的任务
社区描述
“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法利用了C、Java和Perl,该语言的主要目标是允许web开发人员快速编写动态网页。
phpphpstorm 技术论坛(原bbs)
社区管理员
  • 开源资源社区
  • phpstory
  • xuzuning
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧