25

以下是案例。我正在日志文件中寻找以下模式。

所有字符串都是AB_Nor的形式CDE_NABCDE是固定字母,后跟下划线。 N可以是 2 个或 3 个数字。

我试过(AB|CDE)_\d{2,3}了,但这会返回一个组。我不能这样做\w{2,3}\d{2,3},因为它必须是ABorCDE而不是ACor FEG。省略括号也会中断。我确信解决方案很简单,但我是 python 和正则表达式的新手,无法弄清楚。

4

2 回答 2

51

正则表达式中括号内的A?:使其无法捕获。像这样:(?:AB|CDE)_\d{2,3}

请参阅此处的文档:http: //docs.python.org/3/library/re.html 大约三分之一的方法是通过非捕获语法。

于 2012-12-20T03:48:26.640 回答
4

非捕获组语法是(?:...). 就这样吧(?:AB|CDE)_\d{2,3}。这与其他所有内容一起记录在案

于 2012-12-20T03:47:30.627 回答