当前位置:Gxlcms > PHP教程 > 请问我这个正则为什么匹配不到呢?

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

时间:2021-07-01 10:21:17 帮助过:11人阅读

$newstext='
  • 长江三峡豪华游轮维多利亚凯珍号
    长江三峡豪华游轮维多利亚凯珍号
  • ';//$newstext='fasdadsafsasdasf百度fadsfadsfadsf百度fadsfadsfads';可以匹配这样的,但是上面的就匹配不到preg_match_all('/(.*)<\/a>/iU',$newstext,$result);print_r($result);exit;


    回复讨论(解决方案)

    找到问题了,a标签里有换行,要把.*改成[\s\S]*
    正确如下:
    preg_match_all('/([\s\S]*)<\/a>/iU',$newstext,$result);

    得到
    Array
    (
    [0] => Array
    (
    [0] => 长江三峡豪华游轮维多利亚凯珍号
    长江三峡豪华游轮维多利亚凯珍号
    )

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

    [2] => Array
    (
    [0] => 长江三峡豪华游轮维多利亚凯珍号
    长江三峡豪华游轮维多利亚凯珍号
    )

    )

    不就是你想要的吗?

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

    /(.*)<\/a>/i sU
    就可以了

    人气教程排行