用正则表达式在Python中解析XML
这个问题在这里已经有了答案:
你通常不想使用re.match
。 从文档引用:
如果您想在字符串中的任何位置找到匹配项,请改用search()(另请参阅search()与match())。
注意:
>>> print re.match('>.*<', line)
None
>>> print re.search('>.*<', line)
<_sre.SRE_Match object at 0x10f666238>
>>> print re.search('>.*<', line).group(0)
>PLAINSBORO, NJ 08536-1906<
另外,为什么使用正则表达式解析XML时,你可以使用像BeautifulSoup
:)。
>>> from bs4 import BeautifulSoup as BS
>>> line='<City_State>PLAINSBORO, NJ 08536-1906</City_State>'
>>> soup = BS(line)
>>> print soup.find('city_state').text
PLAINSBORO, NJ 08536-1906
请使用像ElementTree这样的XML解析器
>>> from xml.etree import ElementTree as ET
>>> line='<City_State>PLAINSBORO, NJ 08536-1906</City_State>'
>>> ET.fromstring(line).text
'PLAINSBORO, NJ 08536-1906'
仅当模式匹配整个字符串时,re.match才会返回匹配项。 要查找匹配模式的子字符串,请使用re.search。
是的,这是解析XML的简单方法,但我强烈建议您使用专门为此任务设计的库。
链接地址: http://www.djcxy.com/p/76845.html上一篇: Parsing XML in Python with regex
下一篇: Writing regular expression in PHP to wrap <img> with <a>