1、先取得">与</a>中间的内容。
2、再匹配需要的内容。

解决方案 »

  1.   

    有点麻烦,有两种办法,你可以匹配了以后判断前边有没有 <a 的,也可以先把 <a href替换为字符串中不可能出现的字符,然后在匹配,匹配了以后再改过来
      

  2.   

    jeff1987 第二个想法我也考虑过,不过比较麻烦,不是我想要实现的最简方法~
      

  3.   

    最典型的问题就是如何匹配这个例句“其他文本其他文本其他文本<div>外层<div>中层<div>内层 </div></div></div>其他文本”
      

  4.   


    /<a[^>]*href=[\'\"\s]*([^\s\'\"]*)[^>]*>(.+?)<\/a>/ig拿这个参考下,这个是同时取出 href后面的地址和<a></a>之间的内容..
      

  5.   

    $re = "/>.*(href).*</"; 
    $t = "<a href=\"xxx\">abchrefaa </a>"; 
    preg_match_all($re, $t, $regs); 
    print_r($regs);