Regex и оператор OR без группировки в Python? - программирование
Подтвердить что ты не робот

Regex и оператор OR без группировки в Python?

Вот примеры. Я ищу следующий шаблон в файле журнала.

Все строки находятся в форме 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 и не могу понять этого.

4b9b3361

Ответ 1

A ?: внутри скобки в регулярном выражении делает его не захватывающим. Например: (?:AB|CDE)_\d{2,3}

Смотрите документы здесь: http://docs.python.org/3/library/re.html Около трети пути через него просматривается синтаксис без захвата.

Ответ 2

Синтаксис группы без захвата (?:...). Итак, (?:AB|CDE)_\d{2,3}. Это документально вместе со всем остальным.