我正在尝试使用正则表达式分隔 csv 文件值,问题是句子周围有引号,而我尝试过的正则表达式似乎没有正确执行。
"All's Well, Ends Well 2012",Comedy
这是 CSV 中包含的字符串之一,我尝试用很多不同的正则表达式语句将其分隔,但它只返回整个字符串而不将其分隔。
关于我可以使用的正则表达式的任何建议或解决方法?
最好的建议是使用 CVS 解析器,例如http://opencsv.sourceforge.net/,正则表达式不是解析 CSV 的最佳选择
split()
仅当输入的其余部分中出现偶数个引号时,才使用以逗号分隔的正则表达式:
String[] parts = line.split(",(?=(([^\"]*\"){2})*[^\"]*$)");
在 ideone 上的实时演示中查看此代码执行