bfloriang
bfloriang

Reputation: 536

Python regex compile (with re.VERBOSE) not working

I'm trying to put comments in when compiling a regex but when using the re.VERBOSE flag I get no matchresult anymore.

(using Python 3.3.0)

Before:

regex = re.compile(r"Duke wann", re.IGNORECASE)
print(regex.search("He is called: Duke WAnn.").group())

Output: Duke WAnn

After:

regex = re.compile(r'''
Duke # First name 
Wann #Last Name
''', re.VERBOSE | re.IGNORECASE)

print(regex.search("He is called: Duke WAnn.").group())

Output:

AttributeError: 'NoneType' object has no attribute 'group'

Upvotes: 9

Views: 4392

Answers (1)

Jon Clements
Jon Clements

Reputation: 142176

Whitespaces are ignored (ie, your expression is effectively DukeWann), so you need to make sure there's a space there:

regex = re.compile(r'''
Duke[ ] # First name followed by a space
Wann #Last Name
''', re.VERBOSE | re.IGNORECASE)

See http://docs.python.org/2/library/re.html#re.VERBOSE

Upvotes: 13

Related Questions