Я хочу создать несколько регулярных выражений Python, комбинируя меньшие шаблоны многократного использования, и я хотел бы, чтобы шаблоны многократного использования использовали флаг verbose. Например, предположим, что у меня был простой шаблон для цифр и один для символа в нижнем регистре,
DIGIT_PATTERN = re.compile(r"""
(?P<my_digit_pattern> # start named group
\d+ # 1 or more integers
) # close named group
""", re.VERBOSE)
CHAR_PATTERN = re.compile(r"""
(?P<my_char_pattern> # start named group
[a-z] # a character
) # close named group
""", re.VERBOSE)
Есть ли способ, которым я могу создать новый шаблон, который состоит из вышеуказанных шаблонов? Что-то вроде
NEW_PATTERN = CHAR_PATTERN followed by DIGIT PATTERN followed by CHAR_PATTERN
, который я бы хотел сопоставить со строкой a937267t
. Приведенные выше примеры сильно упрощены, но главное - как объединить регулярные выражения, которые были определены с подробным флагом.
UPDATE
Это то, что я имею до сих пор ... может быть, единственный путь ....
NEW_PATTERN = re.compile(
CHAR_PATTERN.pattern +
DIGIT_PATTERN.pattern +
CHAR_PATTERN.pattern,
re.VERBOSE
)
Мне пришлось отказаться от названных групп, потому что не может быть двух групп, названных одинаково, но я думаю, что это то, что я искал.