我们说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)))
但这不起作用。
有什么想法吗?我想要负面匹配。
答案 0 :(得分:2)
使用negative lookahead assertion (?! … )
:
re.compile(r'<(?!%s)[^>](/>|.?)' % ('|'.join(allowed_bits)))