Expresión regular con número variable de grupos
Es posible crear una expresión regular con un número variable de grupos?
Después de ejecutar esto, por ejemplo ...
Pattern p = Pattern.compile("ab([cd])*ef");
Matcher m = p.matcher("abcddcef");
m.matches();
... Me gustaría tener algo como
m.group(1)
= "c"
m.group(2)
= "d"
m.group(3)
= "d"
m.group(4)
= "c"
. (Antecedentes: estoy analizando algunas líneas de datos y uno de los "campos" se repite. Me gustaría evitar unmatcher.find
loop para estos campos.)
Como señaló @Tim Pietzcker en los comentarios, perl6 y.RE tiene esta característica.