0

比方说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)))

但这不起作用。

有任何想法吗?我想否定匹配。

4

1 回答 1

2

使用否定的前瞻断言(?! … )

re.compile(r'<(?!%s)[^>](/>|.?)' % ('|'.join(allowed_bits)))
于 2009-10-25T22:37:53.003 回答