我不明白为什么这个简单的正则表达式匹配不返回匹配对象。它返回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
答案 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>