Несколько групп с одним и тем же именем регулярное выражение 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]*), это дает вам тот же результат.

демонстрация

Другие вопросы по тегам