2009-10-25 10 views
0

Скажем allowed_bits = ['a', 'p']Белый список определенных HTML-тегов в python?

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

Не следует использовать регулярное выражение для разбора [X] [HT] ML. Он никогда не сможет работать надежно. Особенно не рекомендуется использовать регулярное выражение для фильтрации тегов HTML в качестве меры безопасности. Используйте правильный синтаксический анализатор XML или HTML (например, BeautifulSoup). – bobince

ответ

Смежные вопросы