小编典典

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

python

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

我完全是newby(昨天开始),想编写一个小程序来搜索文件夹树中的某些文件,打开这些文件并在这些文件中找到某些行,然后将这些行打印到一个新文件中。为了完成第一步,我想匹配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

阅读 190

收藏
2021-01-20

共1个答案

小编典典

因为您应该将传递给re.Icompile()不是match()

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