<li class="p_xingbie"><label>性别:</label><a href="ooxx.html"  target="_blank">尤物一枚</a> <a href="xxoo.html"  target="_blank">骚年一个</a></li>请帮忙用preg_match_all 从<li class="p_xingbie">(.*)</li>写个正则, 取出里边<a>里的字符, 整段代码只要<a>里的字符赤裸裸的: '尤物一枚 骚年一个' 其他多余的字符和标签都不要,因为<a>有可能一个, 有可能多个, 所以请用是<a>就匹配的代码最重要的 是定要  preg_match_all("/<li class=\"p_actor\">(.*?)<\/li>/is",$path,$str);  从<li>开始截取 到</li>结束 然后里边正则取字符谢谢各位

解决方案 »

  1.   

    先取出每个li,然后再匹配a标签preg_match_all("/<li class=\"p_actor\">(.*?)<\/li>/is",$path,$str);foreach($str[1] as $v){
           preg_match_all('/>([^<]+)<\/a>/isU',$v,$m[]);
    }
    print_r($m);
      

  2.   


    $path='<li class="p_xingbie"><label>性别:</label><a href="ooxx.html"  target="_blank">尤物一枚</a> <a href="xxoo.html"  target="_blank">骚年一个</a></li>';
    preg_match_all("/<li class=\"p_xingbie\">(.*?)<\/li>/si",$path,$str);
    preg_match_all("/target=\"_blank\">(.*?)<\/a>/si",$str[1][0],$content);
    print_r($content[1]);
      

  3.   


    高手就是高手, 你这个给我解决了,  不过有个问题就是 用print_r是可以打印出数组来的  但是用echo却不能输出出来,请问该怎么用echo显示出来两位的代码都对,  jordan102的代码我理解的多一点  谢谢两位
      

  4.   

    加一句:
    foreach($m as $v) echo join(' ',$v[1])."<br>";    //每个 li 中的 a 字符显示在一行
      

  5.   

    哈哈,前辈究竟是前辈。。 解决了  我这新手还真是菜。。 可以结贴了  对了 再多问一个 如果多个<a>的话我想要给中间加个符号怎么办?比如  <a>中文</a> <a>汉字</a> 用你的代码取出了 '中文汉字' 那我想'中文-汉字'这样
    就是给每个<a>标签之间加个东西分开来