muszę podzielić ciąg używając przecinek (,) jako separatora i ignoruje wszelkie przecinek, który jest cytaty wewnątrz (")
Java: Dzielenie String przy użyciu regex
fieldSeparator : ,
fieldGrouper : "
Łańcuch do rozłamu jest: "1","2",3,"4,5"
jestem w stanie to osiągnąć w następujący sposób:
String record = "\"1\",\"2\",3,\"4,5\"";
String[] tokens = record.split(",(?=([^\"]*\"[^\"]*\")*[^\"]*$)");
wyjściowa:
"1"
"2"
3
"4,5"
Teraz wyzwaniem jest to, że fieldGrouper (") nie powinny być częścią tokenów dzielonych. Nie jestem w stanie znaleźć w tym celu wyrażenia regularnego.
Oczekiwany wyjście podziału jest:
1
2
3
4,5
myślę, że robi to char-by-char będzie bardziej czytelny i zdecydowanie szybszy. Algorytm jest tak prosty, jak to tylko możliwe. I łatwiej jest obsłużyć wyjątek '' "', który prawdopodobnie pojawi się prędzej czy później. – Dariusz
Czy możemy zapytać, dlaczego pracujesz ze zniekształconym wejściem pseudo JSON? Ożywienie z cytatami sprawia, że trudno się z tym uporać i może być lepiej dla ciebie, aby oczyścić źródło. –