我试图获得一个正则表达式来替换链接值的文本字符串中的所有链接。所有属性锚定标记的正则表达式
链接可能看起来像这些:
<a href="http://whatever" id="an_id" rel="a_rel">the link</a>
<a href="/absolute_url/whatever" id="an_id" rel="a_rel">the link</a>
我想正则表达式,我得到:the link
谢谢
问候。
我试图获得一个正则表达式来替换链接值的文本字符串中的所有链接。所有属性锚定标记的正则表达式
链接可能看起来像这些:
<a href="http://whatever" id="an_id" rel="a_rel">the link</a>
<a href="/absolute_url/whatever" id="an_id" rel="a_rel">the link</a>
我想正则表达式,我得到:the link
谢谢
问候。
像这样的东西应该是足够
<a.*?>(.*)?</a>
/<a[\s]+([^>]+)>((?:.(?!\<\/a\>))*.)<\/a>/g
这人会匹配任何<a ...>...</a>
标签包括含有<或任何整标记,如正确匹配的:
blah blah <a href="test.html">This line contains an HTML opening < bracket.</a> blah blah
blah blah <a href="test.html">This line contains <strong>bold</strong> text.</a> blah blah
将捕获:
<a href="test.html">This line contains an HTML opening < bracket.</a>
href="test.html"
This line contains an HTML opening < bracket.
和
<a href="test.html">This line contains <strong>bold</strong> text.</a>
href="test.html"
This line contains <strong>bold</strong> text.
它还包括捕获组的标签属性(如CLA ss =“”,href =“”等)以及包含(标签之间的内容),如果不需要它们,可以将其删除。
如果您想跨多行捕获,请在结尾处的“g”标志之前或之后添加“s”。请注意,“s”标志可能不适用于所有类型的正则表达式。
捕获的例子(不使用“S”标志 - 不支持regexr尚):http://regexr.com/39rsv
从接受的答案只是一点点修正。这是正确的正则表达式:/<a[^>]*>([^<]+)<\/a>/g
。用于关闭锚标记</a>
的正斜杠(/)
未被转义,因此不会进行匹配。
试试这个100%的工作
(?i)<a(.*)(")>
相关http://stackoverflow.com/questions/238891/regular-expressions-match-all-anchors-with-optional-attributes – 2014-01-01 20:04:03