将C#regex转换为python

Key*_*eyo 1 python regex

我不确定为什么这个正则表达式不会在python 2.7(re.compile)中编译.re.debug标志甚至不会告诉我原因.

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

Cam*_*ron 5

因为在Python中,命名捕获是完成的(?P<name>),而不是(?<name>).尝试:

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

一定要使用原始字符串,例如r'regex'(与C#的@"regex"语法比较).

请注意,这(\s| )是多余的,可以替换为(\s)或仅仅\s是捕获不重要.同样,([#:; ]| )可以安全地替换([#:; ]).