分裂为“,”但不是“\”

时间:2013-10-06 19:29:45

标签: java regex parsing csv

我正在寻找匹配,的正则表达式,但忽略Java的正则表达式引擎中的\,。这很接近:

[^\\],

但是,它匹配前一个字符(除逗号外),这将无效。

也许正则表达式方法完全是错误的。我打算使用String.split()来解析带有转义逗号的简单CSV文件(不能使用外部库)。

1 个答案:

答案 0 :(得分:7)

您需要negative look-behind assertion

String[] arr = str.split("(?<![^\\\\]\\\\),");

请注意,那里需要4个反斜杠。首先转义Java字符串文字的反斜杠。然后再次逃避正则表达式的反斜杠。