【发布时间】:2017-08-18 16:32:44
【问题描述】:
请建议如何使用 regexp python 样式获取 xml 属性值。
这里是例子,摘录必须完全匹配(长故事)
<method code="ABC">
我实现的最多的是(?<=code=\")(.*?)(?=\">),但这完全忽略了方法部分
谢谢
【问题讨论】:
-
不要使用正则表达式解析 XML;使用真正的 XML 解析器。
请建议如何使用 regexp python 样式获取 xml 属性值。
这里是例子,摘录必须完全匹配(长故事)
<method code="ABC">
我实现的最多的是(?<=code=\")(.*?)(?=\">),但这完全忽略了方法部分
谢谢
【问题讨论】:
好吧,要么你学习正则表达式的基础语法并使用re,要么你看看Python的xml.etree.ElementTree模块直接解析xml。
如果您想使用正则表达式,您可以使用在线工具以交互方式测试特定语言的表达式,例如regex101。
也许<(?P<method>\w*?) (?P<code>\w*?)=\"(?P<value>.*)\"> 可以完成这项工作。
但是再一次,如前所述,使用正则表达式从 XML 中提取数据是脆弱且非常有限的。
编辑:3 的更清晰解释
EDIT2:添加正则表达式建议
【讨论】: