$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="margin: 0px; padding: 0px; border: none; width: 118px; height: 86px; " /><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;正则

解决方案 »

  1.   

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

  2.   

    得到
    Array
    (
        [0] => Array
            (
                [0] => <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="margin: 0px; padding: 0px; border: none; width: 118px; height: 86px; " /><br style="margin: 0px; padding: 0px; " />长江三峡豪华游轮维多利亚凯珍号</a>
            )    [1] => Array
            (
                [0] => http://www.clvyou.com/jingdiafasdfsadfadsadsn/10063.html
            )    [2] => Array
            (
                [0] => <img src="http://www.clvyou.com/d/file/titlepic/jingdia10063.jpg" alt="长江三峡豪华游轮维多利亚凯珍号" style="margin: 0px; padding: 0px; border: none; width: 118px; height: 86px; " /><br style="margin: 0px; padding: 0px; " />长江三峡豪华游轮维多利亚凯珍号
            ))不就是你想要的吗?
      

  3.   

    /<a.+href=["|\'](.*)["|\'].*>(.*)<\/a>/isU
    就可以了