2012-06-03 53 views
0

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

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

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

Output: None 

回答

3

因为你要传递给re.Icompile(),不match()

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

嘿琥珀感谢您的快速回答!作品。对不起,如果这是有点愚蠢! – Baf

相关问题