Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
匹配xml字符串内文本的Python正则表达式模式_Python_Regex_Xml - Fatal编程技术网

匹配xml字符串内文本的Python正则表达式模式

匹配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

我正在解析一个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
。我不认为
是特殊字符,因此不需要转义;无论如何,我都尝试过逃跑,但仍然没有成功。

您可以尝试更简单的方法:

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的前瞻功能对我来说非常混乱。我读过一些网上的东西,但我不能把我的头缠在上面。谢谢。