Salve a tutti, chiedo il vostro aiuto per un problema che non riesco a risolvere. Spero che qualcuno possa darmi una mano. Ho un file .csv (di prodotti) che apro in lettura e che è formato dai seguenti campi:
riga 1 -> sku, description, image, price
riga 2 -> 001, questa è la prima descrizione, img01, 10
riga 3 -> 002, "questa, dovrebbe essere la seconda descrizione", img02, 11
riga 4 -> 003, "questa è, forse, l'ultima descrizione", img03, 12
il mio problema consiste nel riuscire a trovare una espressione regolare che analizzi le varie righe e quando trova i doppi apici e all'interno di questi una o più virgole li consideri come campo unico. Esempio le stringhe presente alle righe 3 e 4 devono essere considerate indipendentemente dai doppi apici e dal numero di virgole presenti tra essi, appartenenti al campo descrizione del prodotto.
Premetto che non sono proprio espertissimo di regex ma ho provato lo stesso a cimentarmi con una cosa del genere (che ovviamente non funziona):
codice:public static String[] parseCSVLine(String line) { Pattern p = Pattern.compile(",(?=((\")?([a-zA-Z0-9,_-]*)(\")?))"); String[] fields = p.split(line); .... return fields; }

Rispondi quotando
