正则表达式匹配<a>标签

求一个匹配<a>标签的正则表达式啊
要求取出href的值和标签的显示内容的值

并且还要考虑到<a>标签中可能存在其他的属性(具体属性量和属性格式不确定)
还要考虑到双单引号的问题
比如:
<a class="txt_12_w" href='xxxx'>111</a>
<a href='xxxx' class="txt_12_w" >111</a>
<a class="txt_12_w" href='xxxx' style="">111</a>

希望大家不要给长篇大论粘贴过来,精炼一点比较好....
我现在是需要匹配所有的<a>标签的哈,取出href的值和标签的显示内容的值
大家可以随便开个页面,取出源代码,然后用正则表达式匹配工具试一下的,看能不能取出所有的<a>标签。

我已经自己写出来了呢,虽然没有等到我要的答案,不过还是谢谢大家.
以下是我自己写的
<a[^>]*? href=[""'](?<url>[^""']*?)[""'][^>]*?>(?<text>[\w\W]*?)</a>

(?<text>[\w\W]*?) 这个表达式很有意思,我不太明白……
如果简化成 ([\w\W]*) ,就不能用了……
类似 <a class="txt_12_w" href="xxxxXXXX" style=""><img src="aaaaaa" /></a> 的就不能匹配了

精简一下你的表达式:
<a[^>]*href=["'](?<url>[^"']*?)["'][^>]*>(?<text>[\w\W]*?)</a>
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-06-02
这种形式如果你想取出的是111
那么
<a[^>]*>([\\d\\D]*?)</a>
如果想取出的是整个标签以及之内的
.*(<a[^>]*>[\\d\\D]*?</a>).*
可以满足,有些语言是单斜线转义,如下
<a[^>]*>([\d\D]*?)</a>
第2个回答  2010-06-02
(?<=\<a\s+href\=').*?(?=')|(?<=\<a\s+href\=.*\>).*?(?=\</a\>)

如:
<a class="txt_12_w" href='xxxx'>111</a>
<a href='xxxx' class="txt_12_w" >111</a>
<a class="txt_12_w" href='xxxx' style="">111</a>
<a class="txt_12_w" href='xxxx'>111</a>
<a href='yyy' class="txt_12_w" ></a>
<a class="txt_12_w" href='xxxx' style="">111</a>

按顺序取出:"xxxx"、"111"、"yyy"、"";
相似回答