正则表达式:根据逗号解析CSV并忽略引号内的逗号

需求:解析CSV文件并忽略引号内的逗号

解决方案:

public static void main(String[] args) {
    String s = "a,b,c,"1,000"";
    String[] result = s.split(",(?=([^"]*"[^"]*")*[^"]*$)");
    for (String str : result) {
        System.out.println(str);
    }
}

输出:



“1,000″

转自:http://liguoliang.com/2013/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F%EF%BC%9A%E6%A0%B9%E6%8D%AE%E9%80%97%E5%8F%B7%E8%A7%A3%E6%9E%90csv%E5%B9%B6%E5%BF%BD%E7%95%A5%E5%BC%95%E5%8F%B7%E5%86%85%E7%9A%84%E9%80%97%E5%8F%B7-splitti/