正则表达式匹配 - 为什么这不匹配并返回None?

时间:2012-06-03 20:29:30

标签: python regex

我不明白为什么这个简单的正则表达式匹配不返回匹配对象。它返回None我做错了什么?

我是一个全新的(昨天开始)并且想要编写一个小程序,在文件夹树中搜索某些文件,打开这些文件并在这些文件中找到某些行,然后将这些行打印到一个新文件中。要完成第一步,我想匹配os.walk返回的文件名,并将它们与某个模式匹配。所以现在我正在查看正则表达式是如何工作的,而且我的理解下面的代码应该给出匹配,但是当我打印出来时,我得到了无。我不明白为什么,它不应该返回任何以9开头的文件?

import os, fnmatch, re
pattern = re.compile(r'^9')
teststring= "9-ZnPc.dat"
a=pattern.match(teststring, re.I)
print a

Output: None

1 个答案:

答案 0 :(得分:3)

因为您应该将re.I传递给compile(),而不是match()

>>> pattern = re.compile(r'^9', re.I)
>>> a=pattern.match(teststring)
>>> print a
<_sre.SRE_Match object at 0x1140168>