Несколько групп с одним и тем же именем регулярное выражение Java?
Существует ли регулярное выражение api или библиотека для java, которая может принимать несколько групп с одним и тем же именем в одном шаблоне?
2 ответа
Это очень старый вопрос, но Google привел меня сюда, я нашел решение для PHP, используя /J
модификатор. Все подробности объяснены здесь: http://www.rexegg.com/regex-capture.html
В.NET, PCRE (C, PHP, R…), Perl и Ruby вы можете использовать одно и то же имя группы в разных местах вашего паттерна. (В PCRE вам нужно использовать модификатор (?J) или параметр PCRE_DUPNAMES.) В этих движках это регулярное выражение будет действительным:
:(?<token>\d+)|(?<token>\d+)#
Рабочий пример здесь https://regex101.com/r/h7HJXj/1
Альтернатива (ab(?<a>[\w]*)|bs(?<a>[\w]*))
регулярное выражение (ab|bs)(?<a>[\w]*)
с тем же именем. проверить тест в демонстрационной ссылке с (ab(?<a>[\w]*)|bs(?<b>[\w]*))
а также (ab|bs)(?<a>[\w]*)
, это дает вам тот же результат.