我有一些xml,即将推出一个带有一些不匹配标记的nlp提取工具。然后我试图使用regex来查找不匹配的标记并纠正问题,但是我在regex部分遇到了麻烦。
我可以选择
<Name>
标签,但我只想选择那些
没有
结束标记,并使用“替换”添加匹配的结束标记。如何缩小范围并正确更换?
实际结果
xx
是
(<Name>.*)</Name>
但我需要它
<Name>Margrethe II</Name>
.
查找:
<Name>.*
替换:
(<名称>*)<名称>
import re
mmt = """<Sovereigns>
<Queens>
<Queen>
<Name>Elizabeth II</Name>
<Country>Great Britain and Northern Ireland</Country>
</Queen>
<Queen>
<Name>Margrethe II
<Country>Denmark</Name></Country>
</Queen>
</Queens>
</Sovereigns>"""
# remove extra closing tag
x = re.sub("</Name><", "<", mmt)
# add closing tag to those missing
xx = re.sub("<Name>.*", "(<Name>.*)</Name>", mmt)