Python正则表达式:这有什么问题?

Nat*_*tim 1 python regex

我试图做一个正则表达式只是从这个XML获取错误代码.

>>> re_code = re.compile(r'<errorcode>([0-9]+)</errorcode>', re.MULTILINE)
>>> re_code.match('''<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
... <methoderesponse>
...     <status>
...         <message/>
...         <errorcode>515</errorcode>
...         <value>ERROR</value>
...     </status>
... </methoderesponse>
... ''')
Run Code Online (Sandbox Code Playgroud)

这应该很容易.但我不明白为什么它不匹配.

Jon*_*nts 8

.match()尝试在开始时匹配.你想要.search()或更有可能.findall()

看一下XML解析器 - 使用XPath或等价物来获取数据要好得多(加上它会处理正则表达式不会产生的细微差别)

适用于示例XML的示例:

import xml.etree.ElementTree as ET
tree = ET.fromstring(text)

>>> tree.findall('.//errorcode')[0].text
'515'
Run Code Online (Sandbox Code Playgroud)

有关ElementTree的更多信息,我会亲自查看lxml