繁体   English   中英

如何删除不必要的标签?

[英]How to remove unnecessary tags?

我在我的表(mysql)中有字段“body”,并且有很多条目,例如:

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

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

很多空间,新线,等等。如何删除它?

这不起作用:

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

text = ''.join(text.split()) - 之后您可以继续替换。

我会在语法树中解析这样的文件,然后删除空叶。 然后会再次生成HTML文件。 不幸的是我不在python中工作,我无法为此指定有用的库。

什么@Jurlie建议是一个很好的方法。 考虑将BeautifulSoup用于此purpouse。 它是一个非常成熟和强大的库。

试试这个正则表达式:

>>> 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'
text.strip('>&nbsp;').strip(' ').strip('\n').strip('\t')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM