我有一个像这样的字符串:
foo,bar,c;qual="baz,blurb",d;junk="quux,syzygy"
我想用逗号分隔——但我需要忽略引号中的逗号。我怎样才能做到这一点?似乎正则表达式方法失败了;我想我可以在看到引用时手动扫描并进入不同的模式,但是使用预先存在的库会很好。 ( _编辑_:我想我的意思是库已经是 JDK 的一部分,或者已经是常用库(如 Apache Commons)的一部分。)
上面的字符串应该分成:
foo
bar
c;qual="baz,blurb"
d;junk="quux,syzygy"
注意: 这不是 CSV 文件,它是包含在具有更大整体结构的文件中的单个字符串
原文由 Jason S 发布,翻译遵循 CC BY-SA 4.0 许可协议
尝试:
输出:
换句话说: _仅当逗号前面有零或偶数个引号时才按逗号拆分_。
或者,对眼睛更友好一点:
产生与第一个示例相同的结果。
编辑
正如@MikeFHay 在评论中提到的: