<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\>/';

解决方案 »

  1.   

    $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>/';这样试试
      

  2.   

    原串中的<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);