Допустим, 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)))
но это не работает.
Есть идеи? Я хочу, чтобы отрицательно соответствовать.