#<a[^>]+href=(['\"]?)(.+)\\1[^>]*>(.*)<\/a>#isU

解决方案 »

  1.   

    preg_match_all('/<a[^>]+href[\s\r\n]*=[\s\r\n]*(['\"]?)(.+)\1[^>]*>(.+)<\/a>/isU',$text,$matches);
      

  2.   

    @href="(.*)".*>(.*)</@isU示例:
    <?php$str    = <<<EOF
    <a
                            href="http://url" target="_blank">标题</a>
    或者是<a  target="_blank" 
                            href="http://url">标题</a>
    EOF;preg_match_all("@href=\"(.*)\".*>(.*)</@isU",$str,$matches);print_r('<PRE>');
    print_r($matches);
    ?>
    输出:
    Array
    (
        [0] => Array
            (
                [0] => href="http://url" target="_blank">标题</
                [1] => href="http://url">标题</
            )    [1] => Array
            (
                [0] => http://url
                [1] => http://url
            )    [2] => Array
            (
                [0] => 标题
                [1] => 标题
            ))