java - 字符串分词器 : split string by comma and ignore comma in double quotes

标签 java regex string

我有一个像下面这样的字符串 -

value1, value2, value3, value4, "value5, 1234", value6, value7, "value8", value9, "value10, 123.23"

如果我对上面的字符串进行分词,我会得到逗号分隔的分词。但我想对字符串分词器说,在拆分时忽略双引号后的逗号。我怎么能这样说呢?

提前致谢

沙市

最佳答案

使用像 OpenCSV 这样的 CSV 解析器自动处理引用元素中的逗号、跨越多行的值等。您也可以使用该库将您的文本序列化回 CSV。

String str = "value1, value2, value3, value4, \"value5, 1234\", " +
        "value6, value7, \"value8\", value9, \"value10, 123.23\"";

CSVReader reader = new CSVReader(new StringReader(str));

String [] tokens;
while ((tokens = reader.readNext()) != null) {
    System.out.println(tokens[0]); // value1
    System.out.println(tokens[4]); // value5, 1234
    System.out.println(tokens[9]); // value10, 123.23
}

关于java - 字符串分词器 : split string by comma and ignore comma in double quotes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19241010/

相关文章:

regex - MATLAB 转义括号

c - 无法理解如何处理 C 字符串

java - 带有日期参数的 TimeZone 和 MessageFormat

java - Findviewbyid 找不到按钮

使用正则表达式的 HTML 时间输入验证(不允许 00 :00 but want allow 24:00)

javascript - 使用正则表达式,从 javascript 中的字符串中提取值

javascript - 如何使用 javascript 从字符串中解析函数体?

javascript - jQuery/Javascript - 明天 12 点 :55 date as string

java - 使用 gson 从 json 中删除 null 属性

java - 是否可以在命令行/作为 Web 服务运行 java 应用程序