Reputation: 2231
I don't understand why this simple regex match does not return a match object. It returns None what am I doing wrong?
I'm a total newby(started yesterday) and want to write a small program that searches folder trees for certain files, open these files and find certain lines in these files, and print the lines into a new file. To complete the first step I want to match the filenames returned by os.walk and match them with a a certain pattern. So right now I'm checking out how regexes work and to my understanding the code below should give a match, but when I print a I get None. I don't understand why, shouldn't it return any file starting with a 9?
import os, fnmatch, re
pattern = re.compile(r'^9')
teststring= "9-ZnPc.dat"
a=pattern.match(teststring, re.I)
print a
Output: None
Upvotes: 1
Views: 894
Reputation: 526573
Because you should be passing the re.I
to compile()
, not match()
.
>>> pattern = re.compile(r'^9', re.I)
>>> a=pattern.match(teststring)
>>> print a
<_sre.SRE_Match object at 0x1140168>
Upvotes: 3