Heim >Backend-Entwicklung >PHP-Tutorial >请问我这个正则为什么匹配不到呢?

请问我这个正则为什么匹配不到呢?

WBOY
WBOYOriginal
2016-06-23 14:06:471031Durchsuche

$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('/([\s\S]*)/iU',$newstext,$result);

得到
Array
(
    [0] => Array
        (
            [0] => 请问我这个正则为什么匹配不到呢?
长江三峡豪华游轮维多利亚凯珍号

        )

    [1] => Array
        (
            [0] =>  http://www.clvyou.com/jingdiafasdfsadfadsadsn/10063.html
        )

    [2] => Array
        (
            [0] =>  请问我这个正则为什么匹配不到呢?
长江三峡豪华游轮维多利亚凯珍号
        )

)

不就是你想要的吗?

如果a链接里有换行不行的

/(.*)/i sU
就可以了

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:对象支持可变吗?Nächster Artikel:php实现autoload有两种方法