1

この正規表現が python 2.7 (re.compile) でコンパイルされない理由がわかりません。re.debug フラグは、その理由を教えてくれません。

\b(?<case>(review|case|bug[zs]?(\s| )*(id)?:?)s?(\s| )*([#:; ]| )+)((([ ,:;#]|and)*)(?<bugid>\d+))+
4

1 に答える 1

5

Python では、名前付きキャプチャは(?P<name>)ではなくで行われるため(?<name>)です。試す:

\b(?P<case>(review|case|bug[zs]?(\s| )*(id)?:?)s?(\s| )*([#:; ]| )+)((([ ,:;#]|and)*)(?P<bugid>\d+))+

たとえば、生の文字列も使用してくださいr'regex'(これは C# の@"regex"構文と比較されます)。

は冗長であり、キャプチャが重要でない場合は単に または(\s| )に置き換えることができることに注意してください。同様に、安全に置き換えることができます。(\s)\s([#:; ]| )([#:; ])

于 2012-04-27T04:48:10.003 に答える