2012-03-14 154 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

這將是最好的方式來正確處理包含「

」的評論或屬性值。但在大多數情況下,簡單的搜索和替換也是可行的。 – 2012-03-14 08:28:38

+0

[lxml](http://lxml.de/)將是一個不錯的選擇 – Dikei 2012-03-14 09:21:02

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這個purpouse。這是一個非常成熟和強大的圖書館。