This question already has answers here:
Regex select all text between tags
(17个答案)
上个月关闭。
我正在尝试提取xml文件中的字符串,int,char等数据类型列表的值。除了这些数据类型标签之外,还有其他标签。
例如,有如下两个标签
我写了下面的代码
以及尝试使用时仅获取字符串值
获取空值。
返回值:
附带说明-如果您的用例更加复杂-请考虑使用XML解析器,例如
https://www.geeksforgeeks.org/xml-parsing-python/
要么
https://docs.python-guide.org/scenarios/xml/
(17个答案)
上个月关闭。
我正在尝试提取xml文件中的字符串,int,char等数据类型列表的值。除了这些数据类型标签之外,还有其他标签。
例如,有如下两个标签
<string> GenIdeal </string>
<int>88</int>
我写了下面的代码
re.findall(r"<string>(.*?)</string>", elem)
以及尝试使用时仅获取字符串值
re.findall(r"<int|string>(.*?)</int|string>", elem)
获取空值。
最佳答案
为了使您的正则表达式正常工作,只需在逻辑替代项周围添加常规括号,即可显示文字:
import re
x="""<string> GenIdeal </string>
<int>88</int> """
y=list(re.findall(r"<(int|string)>(.*?)</(int|string)>", x))
print(y)
返回值:
[('string', ' GenIdeal ', 'string'), ('int', '88', 'int')]
附带说明-如果您的用例更加复杂-请考虑使用XML解析器,例如
https://www.geeksforgeeks.org/xml-parsing-python/
要么
https://docs.python-guide.org/scenarios/xml/
10-04 10:15