白色在python中列出某些HTML标签?

时间:2009-10-25 22:34:18

标签: python regex regex-negation

我们说allowed_bits = ['a', 'p']

re.compile(r'<(%s)[^>]*(/>|.*?</\1>)' % ('|'.join(allowed_bits)))

匹配:

<a href="blah blah">blah</a>
<p />

而不是:

<html>blah blah blah</html>

我想要做的就是把它转到头上,以便匹配

<html>blah blah</html>
<script type="text/javascript">blah blah</script>

而不是:

<p>Hello</p>

我的想法是做一些事情:

re.compile(r'<(**^**%s)[^>]*(/>|.*?</\1>)' % ('|'.join(allowed_bits)))

但这不起作用。

有什么想法吗?我想要负面匹配。

1 个答案:

答案 0 :(得分:2)

使用negative lookahead assertion (?! … )

re.compile(r'<(?!%s)[^>](/>|.?)' % ('|'.join(allowed_bits)))