Можно ли создать регулярное выражение с переменным числом групп?
После запуска этого примера...
Pattern p = Pattern.compile("ab([cd])*ef");
Matcher m = p.matcher("abcddcef");
m.matches();
... Я хотел бы иметь что-то вроде
-
m.group(1)
="c"
-
m.group(2)
="d"
-
m.group(3)
="d"
-
m.group(4)
="c"
.
(Предыстория: я разбираю некоторые строки данных, и одно из "полей" повторяется. Я бы хотел избежать цикла matcher.find
для этих полей.)
Как указано @Tim Pietzcker в комментариях, perl6 и . NET имеют эту функцию.