我不明白为什么这个简单的正则表达式匹配不返回匹配对象。它返回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
因为您应该将传递给re.I而compile()不是match()。
re.I
compile()
match()
>>> pattern = re.compile(r'^9', re.I) >>> a=pattern.match(teststring) >>> print a <_sre.SRE_Match object at 0x1140168>