Python2正则表达式似乎有缺陷

2024-03-29 01:19:45 发布

您现在位置:Python中文网/ 问答频道 /正文

在Linux上使用Python2.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)
[]

这是一个bug,还是Python正则表达式有什么我不了解的地方?你知道吗


Tags: textimportrereadlinuxfeedxmlopen
2条回答

下面是这个问题的最佳答案:不要使用正则表达式来解析非正则语言,比如XML。It drove one S-O user insane.Another relevant link.

默认情况下,“.”与换行符不匹配。尝试

regexp2 = re.compile(r'<item>.*</item>', re.DOTALL)

相关问题 更多 >