Aquí es simple patrón: [key]: [value1] [value2] [value3] [valueN]
Java 6 varias coincidencias de expresiones regulares de un grupo
quiero llegar:
- clave
- matriz de valores
Aquí es mi expresión regular: ^([^:]+):(:? ([^ ]+))++$
Aquí está mi texto: foo: a b c d
Matcher
me da 2 grupos: foo
(como clave) y d
(como valores).
Si uso +?
en lugar de ++
obtengo a
, no d
.
Entonces java me devuelve la primera (o última) ocurrencia del grupo.
No puedo usar find()
aquí porque solo hay una coincidencia.
¿Qué puedo hacer excepto dividir expresiones regex en 2 partes y usar find para la matriz de valores? He trabajado con expresiones regulares en muchos otros entornos y casi todos ellos tienen la capacidad de buscar "primera aparición del grupo 1", "segunda aparición del grupo 1" y así sucesivamente.
¿Cómo puedo hacer con java.util.regex
en JDK6?
Gracias.
¿Puede por favor aclarar el punto sobre la existencia de "una única * * partido?" No hay forma de capturar una cantidad indeterminada de coincidencias como las que está pidiendo, por lo que se requiere alguna iteración aquí. – seh
¡Ya es 2013 y aún no hay una solución decente para este problema! * facepalm * – altern