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 に答える