匹配xml字符串内文本的Python正则表达式模式
我正在解析一个XML文件,需要从最终输出中删除一些杂乱无章的内容匹配xml字符串内文本的Python正则表达式模式,python,regex,xml,Python,Regex,Xml,我正在解析一个XML文件,需要从最终输出中删除一些杂乱无章的内容 str = <?xml version="1.0" encoding="UTF-8" standalone="yes"?><chat-message>2018-10 str=2018-10 我尝试的解决方案是: re.sub(r'<(\w|\d|\s){1,}>{1,4}',"",str) re.sub(r'{1,4}','',str) 我想要的结果是: 2018-10 目前Python
str = <?xml version="1.0" encoding="UTF-8" standalone="yes"?><chat-message>2018-10
str=2018-10
我尝试的解决方案是:
re.sub(r'<(\w|\d|\s){1,}>{1,4}',"",str)
re.sub(r'{1,4}','',str)
我想要的结果是:
2018-10
目前Python没有找到匹配项,只是返回
str
。我不认为
是特殊字符,因此不需要转义;无论如何,我都尝试过逃跑,但仍然没有成功。您可以尝试更简单的方法:
re.sub(r'<.*?>', '', str)
re.sub(r'','',str)
您可以尝试更简单的方法:
re.sub(r'<.*?>', '', str)
re.sub(r'','',str)
在我看来,使用XML解析器比使用正则表达式更好。下面是一个示例,使用:
将xml.etree.ElementTree作为ET导入
xmlstring='2018-10'
root=ET.fromstring(xmlstring)
打印(root.text)
#输出
# 2018-10
在我看来,使用XML解析器比使用正则表达式更好。下面是一个示例,使用:
将xml.etree.ElementTree作为ET导入
xmlstring='2018-10'
root=ET.fromstring(xmlstring)
打印(root.text)
#输出
# 2018-10
此正则表达式适用于您问题中的测试用例-
r"<[\w\D]+>([-\d]+)"
r“([-\d]+)”
你可以在这里测试-
此正则表达式适用于您问题中的测试用例-
r"<[\w\D]+>([-\d]+)"
r“([-\d]+)”
你可以在这里测试-
你能再举几个例子吗?很难推断出你想要精确匹配的是什么。现在可能像re.sub(r'.*>(?)你能再举一些例子吗?很难精确地推断出你想要匹配什么。现在可能像re.sub(r'.*>(?!已经这样做了。xml标记的剩余部分仍保留在解析器输出中。@m如果xml有效,则您可以发布一个给您带来麻烦的xml示例,我们可能会提供帮助。xml中包含大量敏感信息(SSN、帐号等)。编辑/删除此信息所需的时间将是疯狂的。是否已经这样做了。xml标记的剩余部分仍保留在解析器输出中。@m如果xml有效,则您可以发布一个给您带来麻烦的xml示例,我们可能会提供帮助。xml中包含大量敏感信息(SSN、帐号等)。编辑/删除此信息所需的时间将是疯狂的。Winner Winner鸡肉晚餐Fred!regex的前瞻功能对我来说非常混乱。我在网上读过一些东西,但无法理解。谢谢。Winner Winner鸡肉晚餐Fred!regex的前瞻功能对我来说非常混乱。我读过一些网上的东西,但我不能把我的头缠在上面。谢谢。