Я должен разбить строку с помощью запятой (,) в качестве разделителя и игнорировать любую запятую, которая внутри кавычек (")
Java: Разбиваем строку с помощью Regex
fieldSeparator : ,
fieldGrouper : "
Строка для раскола: "1","2",3,"4,5"
Я могу достичь его следующим образом:
String record = "\"1\",\"2\",3,\"4,5\"";
String[] tokens = record.split(",(?=([^\"]*\"[^\"]*\")*[^\"]*$)");
Выход:
"1"
"2"
3
"4,5"
Теперь задача состоит в том, что fieldGrouper (") не должно быть частью расщепленных лексем. Я не могу определить регулярное выражение для этого.
Ожидаемый выход раскола:
1
2
3
4,5
Я думаю, что делает этот символ-на-полукокса будет на самом деле более читабельным и определенно быстрее. И алгоритм так же прост, как и получается. И проще обработать исключение '' '', которое, скорее всего, появится рано или поздно. – Dariusz
Можем ли мы спросить, почему вы работаете с неправильным вводом JSON? Фанкизм с цитатами затрудняет работу, и вам может быть лучше очистить источник. –