Witam,
Męczę się już trochę nad tym (w zasadzie nie mam doświadczenia z regexpami, bo dopiero staram się je zgłębić) i niestety nie mogę poradzić sobie z następującym przykładem. Proszę o pomoc/wskazówki.
Mamy ciąg wyrazów oddzielonych przecinkami, ale niektóre z nich mogą być ujęte w cudzysłowy (wtedy przecinki wewnątrz nich nie dzielą słowa na dwie części). Do tego w słowie (niekoniecznie tym ujętym w cudzysłowy) może wystąpić znak cudzysłowu w standardowej postaci: "
Spacje na początku i końcu wyrazu nieujętego w cudzysłowy mnie nie interesują.
Przykład:
Ala , ma kota, "mrówki, ", "psa, "papugę", ", ""rybki" ", "oraz brata"
i chcę z tego otrzymać (zapiszę każdy z tokenów w [ ], ale jedynie dla czytelności):
[Ala] [ma kota] [mrówki, ] [psa, "papugę", ] ["rybki" ] ["oraz brata"]
Wydawało mi się (na razie, bez uwzględnienia "), że takie coś podziała, ale niestety nie :(
String regexp = "[\"][^\"]*[\"]|[,]"; // ignoruje \" jako "
Scanner s = new Scanner(sourceString).useDelimiter("cokolwiek ?");
String token;
while (s.hasNext(regexp)) // czy to powoduje rekompilacie "patterna" w kazdym obrocie petli ?
token = s.next(regexp);
/* .... */
Prosze o pomoc.