1

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

我是一个完全新手(昨天开始),想编写一个小程序来搜索文件夹树中的某些文件,打开这些文件并在这些文件中找到某些行,然后将这些行打印到一个新文件中。为了完成第一步,我想匹配 os.walk 返回的文件名并将它们与特定模式匹配。所以现在我正在检查正则表达式是如何工作的,据我了解,下面的代码应该会匹配,但是当我打印 a 时,我得到了 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
4

1 回答 1

3

因为你应该传递re.Ito compile(),而不是match()

>>> pattern = re.compile(r'^9', re.I)
>>> a=pattern.match(teststring)
>>> print a
<_sre.SRE_Match object at 0x1140168>
于 2012-06-03T20:33:30.963 回答