У меня есть строка CSV, разделенная запятой:
1000102257,b,N,159999,3,4545656,4,,,,"6,125% NORDRHEIN-WESTF.LA.SCHA.R.239 21.12. "18"
Токены, содержащие разделитель запятой (,) в качестве содержимого, заключаются в двойные кавычки, чтобы избежать его.
Как видитепоследний токен является изолятом между двойными кавычками, но появляется еще одна двойная кавычка ("18), которая разрушает механизм токенизации:
"6,125% NORDRHEIN-WESTF.LA.SCHA.R.239 21.12. "18"
Это мой код для разбиения токенов на строку:
public static void main(String[] args) {
final String cvsSplitterEscapingQuotes = ",(?=([^\\\"]*\\\"[^\\\"]*\\\")*[^\\\"]*$)";
String strLine = "1000102257,b,N,159999,3,4545656,4,,,,\"6,125% NORDRHEIN-WESTF.LA.SCHA.R.239 21.12. \"18\"";
String[] tokens = strLine.split(cvsSplitterEscapingQuotes, -1);
}
Как я могу избежать средних двойных кавычек, которые находятся в кавычках?