Ответ 1
A ?:
внутри скобки в регулярном выражении делает его не захватывающим. Например: (?:AB|CDE)_\d{2,3}
Смотрите документы здесь: http://docs.python.org/3/library/re.html Около трети пути через него просматривается синтаксис без захвата.
Вот примеры. Я ищу следующий шаблон в файле журнала.
Все строки находятся в форме 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 и не могу понять этого.
A ?:
внутри скобки в регулярном выражении делает его не захватывающим. Например: (?:AB|CDE)_\d{2,3}
Смотрите документы здесь: http://docs.python.org/3/library/re.html Около трети пути через него просматривается синтаксис без захвата.
Синтаксис группы без захвата (?:...)
. Итак, (?:AB|CDE)_\d{2,3}
. Это документально вместе со всем остальным.