2009-10-25 2 views
0

Disons que allowed_bits = ['a', 'p']Blanc liste certaines balises HTML en python?

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

matches:

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

et non:

<html>blah blah blah</html> 

Ce que je veux faire est de tourner sur sa tête, afin qu'il corresponde

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

et non:

<p>Hello</p> 

Ma pensée était de faire quelque chose comme:

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

mais cela ne fonctionne pas.

Des idées? Je veux correspondre négativement.

+0

Ne pas utiliser regex pour analyser [X] [HT] ML. Cela ne peut jamais fonctionner de manière fiable. Surtout, n'utilisez jamais regex pour filtrer les balises HTML par mesure de sécurité. Utilisez un analyseur XML ou HTML approprié (par exemple, BeautifulSoup). – bobince

Répondre

Questions connexes