【发布时间】:2020-02-21 22:46:57
【问题描述】:
我有一个逗号分隔的 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);
}
如何转义引号内的中间双引号?
【问题讨论】: