0

在我的 QTextBrowser 中,我检测到像“www.test.com”这样的链接

re.compile(   r"(\b(?:(?:https?|ftp|file)://|www\.|ftp\.)[-A-Za-z0-9+&@#/%?=~_()|!:,.;]*[-A-Za-z0-9+&@#/%=~_()|])"   )

当 QTextBrowser 上发生进一步的操作时,将再次接收文本text.toHtml(),然后再次解析。这会导致级联超链接。

所以我想在再次解析之前删除超链接 HTML。例如,文本看起来像

<a href="www.test.com">www.test.com</a> 

第一次解析后,应该看起来像

www.test.com

在第二次解析之前,防止级联。

如何删除

<a href="SOMETHING"> and </a>

用正则表达式?

不应删除其他 html-tags,如粗体或斜体。#

编辑

我听说过不使用正则表达式解析 HTML,但我认为这应该是可能的,我不想在我的程序中进一步依赖。

4

1 回答 1

2

我会考虑使用BeautifulSoup来完成这项任务。

>>> from bs4 import BeautifulSoup
>>> soup = BeautifulSoup(html)
>>> for m in soup.find_all('a'):
...     m.replaceWithChildren()
>>> print soup
于 2013-08-16T17:02:04.493 回答