Рассмотрим следующие строки
C 1
D 2.2
Y 1
Z 2.2
Мне нужно регулярное выражение, чтобы сопоставить оба и вернуть 1 или 2 соответственно. Работает следующее регулярное выражение:
((C|Y) (\d)|(D|Z) (\d).(?:\d))
Что важнее: мне также нужно знать, было ли найдено соответствие (C | Y) или (D | Z).
Я планирую сделать это в коде вызова (который python). Я мог бы проверить, является ли строка C, Y, D или Z, но этот подход не является расширяемым. Я хочу, чтобы регулярное выражение возвращало A в первой группе захвата, если либо C, либо Y были сопоставлены, и B, если либо D, либо Z были сопоставлены. Таким образом, мне нужно только проверить A или B в вызывающем коде, и я могу легко расширить классы за счет большего числа членов. Есть ли способ сделать это?
Я также читал о заменах строк с помощью регулярных выражений. Я не думаю, что это правильный инструмент для меня, потому что это будет включать создание другой строки с замененным текстом (если я правильно понял). Это не то, что мне нужно.