9

正規表現をコンパイルするときにコメントを入れようとしていますが、re.VERBOSE フラグを使用すると、もう matchresult が得られません。

(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' オブジェクトに属性 'group' がありません

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 に答える