Expressão regular com número variável de grupos?
É possível criar uma expressão regular com um número variável de grupos?
Depois de executar isso, por exemplo ...
Pattern p = Pattern.compile("ab([cd])*ef");
Matcher m = p.matcher("abcddcef");
m.matches();
... eu gostaria de ter algo como
m.group(1)
= "c"
m.group(2)
= "d"
m.group(3)
= "d"
m.group(4)
= "c"
.(Antecedentes: estou analisando algumas linhas de dados e um dos "campos" está se repetindo. Gostaria de evitar umamatcher.find
loop para esses campos.)
Conforme apontado por @Tim Pietzcker nos comentários,perl6 e.INTERNET tem esse recurso.