9

我试图在编译正则表达式时添加注释,但是当使用 re.VERBOSE 标志时,我不再得到匹配结果。

(使用 Python 3.3.0)

前:

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

输出:杜克万

后:

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

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

输出:AttributeError:“NoneType”对象没有属性“组”

4

1 回答 1

12

空格被忽略(即,你的表达式是有效的DukeWann),所以你需要确保那里有一个空格:

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

请参阅http://docs.python.org/2/library/re.html#re.VERBOSE

于 2012-12-07T11:01:45.243 回答