我正在尝试获取一个正则表达式来替换文本字符串中的所有链接作为链接值。
链接可能如下所示:
<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
发布于 2012-02-06 18:01:01
/<a[^>]*>([^<]+)<\/a>/g它远不是完美的,但你需要提供更多的例子来说明什么是正确的匹配,什么不是(例如,空格呢?)
发布于 2014-11-06 02:38:58
/<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.
它还包括捕获标签属性(如class="“、href="”等)和contain (标签之间的内容)的组,如果您不需要它们,可以将其删除。
如果要跨多行捕获,请在末尾的"g“标志之前或之后添加"s”。请注意,"s“标志可能并不适用于所有类型的正则表达式。
捕获示例(未使用"s“标志- regexr尚不支持):http://regexr.com/39rsv
发布于 2016-07-06 02:09:32
只是从公认的答案中稍作更正。这是正确的正则表达式:/<a[^>]*>([^<]+)<\/a>/g。用于结束锚点标记</a>的正斜杠(/)未转义,因此将不会进行匹配。
https://stackoverflow.com/questions/9158346
复制相似问题