2012-03-14 105 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。这是一个非常成熟和强大的图书馆。