具有所有属性的锚标记的正则表达式

Lob*_*obo 9 regex expression

我正在尝试使用正则表达式替换文本字符串中的所有链接以获取链接的值.

链接可能如下所示:

<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>
Run Code Online (Sandbox Code Playgroud)

我想要一个正则表达式: the link

F.P*_*F.P 24

/<a[^>]*>([^<]+)<\/a>/g
Run Code Online (Sandbox Code Playgroud)

它远非完美,但你需要提供更多正确匹配和不匹配的例子(例如,什么是空格?)


Jim*_*Jim 12

/<a[\s]+([^>]+)>((?:.(?!\<\/a\>))*.)<\/a>/g
Run Code Online (Sandbox Code Playgroud)

这个将匹配任何<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
Run Code Online (Sandbox Code Playgroud)

捕获:

<a href="test.html">This line contains an HTML opening < bracket.</a>
Run Code Online (Sandbox Code Playgroud)
  • 与捕获组:
    • href="test.html"
    • This line contains an HTML opening < bracket.

<a href="test.html">This line contains <strong>bold</strong> text.</a>
Run Code Online (Sandbox Code Playgroud)
  • 与捕获组:
    • href="test.html"
    • This line contains <strong>bold</strong> text.

它还包括捕获标记属性的组(如class ="",href =""等)并包含(标记之间的内容),如果您不需要它们,可以删除它们.

如果要跨多行捕获,请在结尾处的"g"标记之前或之后添加"s".请注意,"s"标志可能不适用于所有正则表达式.

捕获示例(不使用"s"标志 - regexr尚不支持):http://regexr.com/39rsv