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