繁体   English   中英

Python-删除过多的html标签

[英]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.

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