[英]Python - remove excessive html tags
所以我目前有这段文字:
<i>This article is written </i><a href="http://google.com"><i>TEST</i></a><i>.</i>
我认为这是一个很好的HTML,但是,我想清理它,删除所有多余的<i>
标签,并将其简化为单个<i>
标签:
<i>This article is written <a href="http://google.com">TEST</a>.</i>
我试图自己清理它,但是我需要提前阅读文本,并且在此方面还没有取得太大的成功。 是否有可以使用的包装或可以使用的方式,还是必须手动进行?
谢谢
HTML解析器的使用绝对是最可靠的解决方案。 它将能够应付跨越多行的标签。
以下内容将解决您的示例,但可能还不止于此...
def OuterI(text):
outer = re.search("(.*?)(\<i\>.*<\/i\>)(.*)", text)
if outer:
return "%s<i>%s</i>%s" % (outer.group(1), re.sub(r"(\<\/?[iI]\>)", "", outer.group(2)), outer.group(3))
else:
return text
print OuterI('<i>This article is written </i><a href="http://google.com"><i>TEST</i></a><i>.</i>')
print OuterI('text before <i>This article is written </i><a href="http://google.com"><i>TEST</i></a><i>.</i> text after')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.