正则表达式匹配,该如何处理
正则表达式匹配想用正则表达式匹配这种格式LIA hrefhttp://news.17173.com/ target_blank新闻中心
正则表达式匹配
想用正则表达式匹配这种格式
<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"却是这个,多了引号,匹配不到。