我正在解析XML文件,需要从最终输出中消除一些混乱。
str = <?xml version="1.0" encoding="UTF-8" standalone="yes"?><chat-message>2018-10
我试图解决的问题是:
re.sub(r'<(\w|\d|\s){1,}>{1,4}',"",str)
我想要的输出是:
2018-10
目前,Python找不到匹配项,只是返回str
。我认为<
或>
不是特殊字符,因此不需要转义。无论如何,我都尝试过转义,但仍然无法正常工作。
答案 0 :(得分:4)
我认为您最好使用XML解析器而不是正则表达式。这是使用xml.etree.ElementTree
的示例:
import xml.etree.ElementTree as ET
xmlstring = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?><chat-message>2018-10</chat-message>'
root = ET.fromstring(xmlstring)
print(root.text)
# OUTPUT
# 2018-10
答案 1 :(得分:1)
您可以尝试更简单的方法:
re.sub(r'<.*?>', '', str)
答案 2 :(得分:0)