Ecco modello semplice: [key]: [value1] [value2] [value3] [valueN]
Java 6 regex più corrispondenze di un gruppo
voglio ottenere:
- chiave
- matrice di valori
Ecco il mio regex: ^([^:]+):(:? ([^ ]+))++$
Ecco il mio testo: foo: a b c d
Matcher
mi dà 2 gruppi: foo
(come chiave) e d
(come valori).
Se utilizzo +?
anziché ++
ottengo a
, non d
.
Quindi java mi restituisce la prima (o l'ultima) occorrenza del gruppo.
Non riesco a utilizzare find()
qui perché c'è solo una corrispondenza.
Cosa posso fare tranne la divisione della regex in 2 parti e utilizzando find per l'array di valori? Ho lavorato con espressioni regolari in molti altri ambienti e quasi tutti hanno la possibilità di recuperare "prima occorrenza del gruppo 1", "seconda occorrenza del gruppo 1" e così via.
Come posso fare con java.util.regex
in JDK6?
Grazie.
Potete per favore chiarire il punto circa che vi sia "solo * uno * partita?" Non c'è modo di catturare un numero indeterminato di partite come te lo chiedi, quindi qui è necessaria qualche iterazione. – seh
È già il 2013 e non esiste ancora una soluzione decente a questo problema! * facepalm * – altern