正则表达式匹配结束HTML标记

时间:2010-08-19 17:15:00

标签: python html regex

我正在研究一个小的Python脚本来清理HTML文档。它的工作原理是接受KEEP的标签列表,然后通过HTML代码解析不在列表中的垃圾标签我一直在使用正则表达式来完成它并且我已经能够匹配开始标签和自闭标签但不是关闭标签。

我一直在尝试匹配结束标记的模式是</(?!a)>。这对我来说似乎合乎逻辑,为什么不工作呢? (?!a)应该匹配任何不是锚标记的东西(不是“a”可以是任何东西 - 它只是一个例子)。

编辑:AGG!我想正则表达式没有显示!

4 个答案:

答案 0 :(得分:15)

答案 1 :(得分:5)

<TAG\b[^>]*>(.*?)</TAG> 

匹配特定HTML标记的开始和结束对。

<([A-Z][A-Z0-9]*)\b[^>]*>(.*?)</\1>

将匹配任何HTML标记的开始和结束对。

请参阅here

答案 2 :(得分:3)

Don't use regex to parse HTML。它只会让你头疼。

使用XML解析器。试试BeautifulSouplxml

答案 3 :(得分:0)

您还可以考虑使用python内置的html解析器(Python 2Python 3的文档)

这将帮助您找到要处理的HTML文档的特定区域-并在其上使用正则表达式。