锚标签的正则表达式

时间:2016-12-15 22:56:33

标签: html regex

当我尝试编写正则表达式以匹配锚点标记时,锚点标记将href中的链接作为组2,锚标记的文本作为组3,如下所示:

<a( href=\"(\S+)\")?.*>([a-zA-Z0-9 ]+)<\/a>

匹配此文字:

hello there <a href="Hello/world1">Hello World1</a><b>How are You<b><a href="Hello/world2">Hello World2</a>

但是,对于第3组,它不匹配Hello World1,而是匹配Hello World2。有人可以帮我写一个正则表达式来匹配group2 = Hello/world1和group2 = Hello World2。 感谢。

Click to see...

1 个答案:

答案 0 :(得分:1)

您给出的示例的正确语法如下所示:

(?:<a(?: href=[^>]+>([^<]+)<\/a>(?!<a)?))+

但是使用正则表达式来解析html是非常不推荐的,因为语言解析器会更有效率,并且能够处理html中可能出现的所有可能情况。