Python2正则表达式似乎有缺陷

Python2正则表达式似乎有缺陷,python,regex,python-2.7,Python,Regex,Python 2.7,在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>') >&g

在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)
[]
>f=open(“feed.xml”)
>>>text=f.read()
>>>进口稀土
>>>regexp1=re.compile(r'')
>>>regexp2=re.compile(r'.*'))
>>>regexp1.findall(文本)
['', '', '', '', '', '', '', '']
>>>regexp2.findall(文本)
[]

这是一个bug,还是我对Python正则表达式有一些不理解的地方?

以下是对这个问题的最佳答案:不要使用正则表达式解析非正则语言,如XML

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

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

不过,这并不能解决他对正则表达式的误解。这是一个正确的观点,但我使用这段代码只是为了快速破解,因此不想也不需要学习任何新的API。我终于找到了疯狂S-O用户的链接。如果可以的话,我会收回我的否决票:)@chepner:做了一个微不足道的(仅限空格)编辑,这样你就可以收回否决票了。@Jangler:快速破解通常会成为你依赖的脚本。如果您学习了新的API,那么您可以使用新的API进行快速黑客攻击