devo dividere una stringa utilizzando virgola (,) come separatore e ignorare qualsiasi virgola che si trova tra virgolette (")
Java: suddivisione di un testo utilizzando Regex
fieldSeparator : ,
fieldGrouper : "
La stringa a Spalato è: "1","2",3,"4,5"
sono in grado di realizzarlo nel modo seguente:
String record = "\"1\",\"2\",3,\"4,5\"";
String[] tokens = record.split(",(?=([^\"]*\"[^\"]*\")*[^\"]*$)");
uscita:
"1"
"2"
3
"4,5"
Ora la sfida è che il fieldGrouper (") non dovrebbe essere una parte dei token di divisione. Non riesco a capire la regex per questo.
L'uscita prevista della divisione è:
1
2
3
4,5
Penso che facendo questo char-by-char sarà effettivamente più leggibile e sicuramente più veloce. E l'algoritmo è tanto semplice quanto diventa. Ed è più facile gestire l'eccezione "" "che probabilmente verrà visualizzata prima o poi. – Dariusz
Possiamo chiederti perché stai lavorando con input Pseudo JSON non valido? Il funky con le virgolette rende questo difficile da gestire e potrebbe essere meglio per voi per ripulire la fonte. –