Heim >Backend-Entwicklung >PHP-Tutorial >请问我这个正则为什么匹配不到呢?
$newstext='<li style="margin: 0px 20px 0px 0px; padding: 0px; list-style-type: none; float: left; text-align: center; line-height: 20px; width: 120px; height: 114px; overflow: hidden; "><a class="gaga" href="http://www.clvyou.com/jingdiafasdfsadfadsadsn/10063.html" title="长江三峡豪华游轮维多利亚凯珍号" target="_blank" style="margin: 0px; padding: 0px; text-decoration: none; color: rgb(0, 0, 0); "><img src="http://www.clvyou.com/d/file/titlepic/jingdia10063.jpg" alt="长江三峡豪华游轮维多利亚凯珍号" style="max-width:90%" /><br style="margin: 0px; padding: 0px; " />长江三峡豪华游轮维多利亚凯珍号</a></li>';//$newstext='fasdadsafsasdasf<a title="gga" href="http://www.baidu.com">百度</a>fadsfadsfadsf<a href=\'http://www.baidu.com\' target="_blank">百度</a>fadsfadsfads';可以匹配这样的,但是上面的就匹配不到preg_match_all('/<a.+href=["|\'](.*)["|\'].*>(.*)<\/a>/iU',$newstext,$result);print_r($result);exit;
找到问题了,a标签里有换行,要把.*改成[\s\S]*
正确如下:
preg_match_all('/
得到
Array
(
[0] => Array
(
[0] =>
长江三峡豪华游轮维多利亚凯珍号
)
[1] => Array
(
[0] => http://www.clvyou.com/jingdiafasdfsadfadsadsn/10063.html
)
[2] => Array
(
[0] =>
长江三峡豪华游轮维多利亚凯珍号
)
)
不就是你想要的吗?
如果a链接里有换行不行的
/
就可以了