正则表达式 - 提取 html 标签 <a> 的 href

我有这个正则表达式:

(?=<a .*href=")(.+)(?=".*>My Text<\/a>)

有了这个,我尝试href<a>.HTML

假设我有这个HTML

<html>
<head>
    ...
</head>
<body>
    ...
     <a class="..." href="..." ..="..">My Text</a>
    ...
</body>
</html>

通过我的正则表达式,我得到了<a class="..." href="..." ..="..(stop before ">),但我只想要href值。

编辑:这个答案:用于查找 <a> 链接的“href”值的正则表达式对我没有帮助。通过该正则表达式,我获得了<a>具有标签所有属性的所有标签。


Cats萌萌
浏览 91回答 2
2回答

Qyouu

考虑使用 HTML 解析器。正则表达式通常不足以解析 HTML。对于您发布的示例及其相当有限的变体,以下内容应该有效:<a[\s\S]*?href="([^"]+)"[\s\S]*?>演示

回首忆惘然

您可以使用此正则表达式来定位 href 属性内的链接:正则表达式:<a&nbsp;.*?&nbsp;`href="(.*?)"`.*?>(?>.*?<\/a>)解释 :.*?&nbsp;==>&nbsp;anything&nbsp;with&nbsp;non-greedy&nbsp;markup href="(.*?)"&nbsp;==>&nbsp;the&nbsp;captured&nbsp;group (?>.*?<\/a>)&nbsp;==>&nbsp;loop-ahead&nbsp;for&nbsp;the&nbsp;closed&nbsp;tag演示:&nbsp;这里
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java