Skip to main content
 首页 » 编程设计

python之匹配所有未包装到 a> 标记中的网址

2025年05月04日12bhlsheji

我正在寻找一种正则表达式模式,可以匹配 HTML 中未包装到“a”标签中的网址,以便进一步将它们包装到“a”标签中(即突出显示所有未突出显示的链接)。

输入是简单的 HTML,允许使用 'a'、'b'、'i'、'br'、'p'、'img' 标签。所有其他 HTML 标记不应出现在输入中,但上述标记可以以任何组合出现。

所以模式应该省略所有属于现有“a”标签的 url,并匹配所有其他只是纯文本的链接,这些链接没有包装到“a”标签中,因此没有突出显示,也不是超链接。如果模式将匹配以 http://、https://或 www. 开头并以 .net、.com 结尾的 url,那就太好了。或 .org,如果 url 不是以 http://、https://或 www 开头。

我试过类似 '(?!<[aA][^>]+>) http://[a-zA-Z0-9._-]+ 的东西(?!)' 来匹配比我上面描述的更简单的情况,但似乎这个任务并不那么明显。

非常感谢您的帮助。

请您参考如下方法:

你可以使用 BeautifulSoup或类似排除所有已经是链接一部分的网址。

然后您可以将纯文本与现有的 url 正则表达式之一进行匹配(谷歌“url regular expression”,您想要哪个取决于您想要的花哨程度)。