所以我现在有这样的文字:
<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>
我试图自己清理它,但我需要提前查看文本,并且没有取得多大成功。有没有我可以使用的包装或我可以做的方式,或者我必须手动操作?
谢谢
答案 0 :(得分:0)
使用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')