以下是案例。我在日志文件中寻找以下模式。
所有字符串均采用AB_N
或CDE_N
的形式。
AB
和CDE
是固定字母,后跟下划线。
N
可以是2个或3个数字。
我尝试(AB|CDE)_\d{2,3}
但是返回了一个组。我不能\w{2,3}\d{2,3}
,因为它必须是AB
或CDE
而不是AC
或FEG
。省略括号也会中断。我确信解决方案很简单,但我是python和regex的新手,无法解决这个问题。
答案 0 :(得分:39)
正则表达式中括号内的?:
使其无法捕获。像这样:(?:AB|CDE)_\d{2,3}
请参阅此处的文档:http://docs.python.org/3/library/re.html 通过它的大约三分之一是通过非捕获语法。
答案 1 :(得分:3)
非捕获组语法为(?:...)
。 (?:AB|CDE)_\d{2,3}
也是。{{1}}。这是documented以及其他所有内容。