读书人

正则表达式匹配,该如何处理

发布时间: 2013-01-25 15:55:29 作者: rapoo

正则表达式匹配
想用正则表达式匹配这种格式
<LI><A href="http://news.17173.com/" target=_blank>新闻中心</A>


<?php



$con= file_get_contents("http://17173.com");

$preg = '#<LI><A href="(.*)" target="_blank">(.*)</A>#';

preg_match_all($preg, $con, $arr);

//print_r($arr[1]);

foreach($arr[1] as $id=>$v){

echo "<a href=$v>".$v."</a> ".$arr[2][$id]."<br>";

}

?>



匹配结果是没东西,但是这个页面中是有这种格式链接的,求解
[解决办法]
首先 target="_blank"和上面给出的是不符合的,到底是哪个?

然后再echo $con;看看

确定有期望的内容
再注意大小写和换行的问题——你的正则固定了大小写,圆点是不包含换行的
[解决办法]
preg_match_all('/<li><a.*?>(.*?)<\/a>/i', $str, $matches);
var_dump($matches[1]);

你的问题是:人家网站的内容是target=_blank这样的,而你的target="_blank"却是这个,多了引号,匹配不到。

读书人网 >PHP

热点推荐