2012-03-14 14 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は良いアプローチです。 このpurpouseにBeautifulSoupを使用することを検討してください。非常に成熟した強力なライブラリです。

関連する問題