2

在 Linux 上使用 Python 2.7.3。这是一个逐字的shell会话。

>>> f = open("feed.xml")
>>> text = f.read()
>>> import re
>>> regexp1 = re.compile(r'</?item>')
>>> regexp2 = re.compile(r'<item>.*</item>')
>>> regexp1.findall(text)
['<item>', '</item>', '<item>', '</item>', '<item>', '</item>', '<item>', '</item>']
>>> regexp2.findall(text)
[]

这是一个错误,还是我对 Python 正则表达式不了解?

4

2 回答 2

5

默认情况下, '。' 不匹配换行符。尝试

regexp2 = re.compile(r'<item>.*</item>', re.DOTALL)
于 2012-07-30T15:39:49.967 回答
0

这是这个问题的最佳答案:不要使用正则表达式来解析非正则语言,例如 XML。它让一位 SO 用户发疯。 另一个相关链接。

于 2012-07-30T15:37:53.623 回答