2012-03-14 6 views
1

У меня есть поле «тело» в моей таблице (MySQL) и там много записей, как:Как удалить ненужные теги?

</p><p> &nbsp;</p><p> 

</p><p> 
    </p><p> 

Много пространства, новой линии, & NBSP и т.д. Как его удалить?

Это не работает:

text.replace('</p><p>&nbsp;</p><p>', '</p><p>') 
text.replace('</p><p>\n</p><p>', '</p><p>') 

ответ

2

text = ''.join(text.split()) - после того, что вы можете продолжать с заменами.

1

Я бы проанализировал такой файл в дереве синтаксиса, а затем удалил туда пустые листья. Затем будет генерировать HTML-файл снова. К сожалению, я не работаю на python, я не могу указать для этого полезные библиотеки.

+0

Это был бы лучший способ обработки таких вещей, как комментарии или значения атрибутов, содержащие «

» правильно. Но в большинстве случаев работает простой поиск и замена. –

+0

[lxml] (http://lxml.de/) будет хорошим выбором – Dikei

0

Попробуйте это регулярное выражение:

>>> import re 
>>> text = '''</p><p> &nbsp;</p><p> 
... 
... </p><p> 
... </p><p> 
... ''' 
>>> re.sub(r'<p>(?:&nbsp;|\s|<br \/>)*?</p>\s*', '', text) 
'</p><p>\n' 
0
text.strip('>&nbsp;').strip(' ').strip('\n').strip('\t') 
1

Что @Jurlie Отдается это хороший подход. Рассмотрите возможность использования BeautifulSoup для этой пурпурной. Это очень зрелая и надежная библиотека.

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