使用String.split()拆分时转义','分隔符

时间:2011-11-11 07:01:32

标签: java regex csv

我正在尝试读取文件,因此当我收到','逗号分隔符时,我会分割字段。但是有些字段中有','但是它们用双引号括起来,因此如何将它拆分为,分隔符。 这就是我所做的

String[] cols = line.split(Pattern.quote(","));

我应该如何仅使用Java在split()中修改它。如果分隔符是管道'|'

,我还需要做哪些更改

3 个答案:

答案 0 :(得分:5)

我回答了类似的问题here。为您的任务修改的第一个表达式将为

,(?=([^"]*"[^"]*")*[^"]*$)

此表达式通过确保在其后跟偶数个引号来标识未加引号的逗号。

答案 1 :(得分:3)

我不会尝试使用正则表达式。正则表达式不是一个很好的匹配 - 虽然它可能创建这样的正则表达式,但阅读起来会很糟糕。

有很多开源CSV解析器。只有quick search找到了很多项目 - 在编写自己的项目之前,我会仔细研究这些项目。

答案 2 :(得分:0)

    String  line="one|two,three";
    String cols[]= line.split("[,|\\|]");

如上所述将基于和

进行拆分

对于元字符|你必须划定\ \我同意他人;最好在那里使用CSV解析器,而不是再次重新发明它。