日期:2014-05-17  浏览次数:20458 次

帮忙解决个php正则
HTML code
<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>结束 然后里边正则取字符

谢谢各位

------解决方案--------------------
先取出每个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);
------解决方案--------------------
PHP code

$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]);