Я не могу найти какую-либо информацию об этом, поэтому я не уверен, возможно ли это, или нет, но здесь идет речь:
Есть ли способ иметь несколько опций для имениподходящая группа?Я получаю параметры из кода и использую имена групп регулярных выражений, чтобы потом их использовать.Однако моя последовательность имеет несколько (очень очень похожих) форматов, и порядок параметров меняется.Поэтому мой вопрос: может ли группа иметь другое имя, если другая группа не соответствует?
Пример: (?'type'A|B|C)-(?'length_or_diameter'\d+)(?:x(?'length'\d+))?
Форматы кода: (type)-(length)
ИЛИ (type)-(diameter)x(length)
См. Здесь
У меня есть способы поиграться с этим в коде, но я думаю, что было бы гораздо более элегантно, если бы это можно было рассмотреть в самом регулярном выражении.Поэтому, вот мой вопрос: есть ли способ для группы 2 (length_or_diameter) быть названным либо «длина», если группа 3 не имеет совпадения, либо «диаметр», если группа 3 имеет совпадение, вместо того, чтобы называться length_or_diameter и требовать большелогика в коде?