如何使用之前没有转义字符的字符拆分java字符串

时间:2016-10-15 10:20:53

标签: java regex string split

我有一个这样的字符串:

a=b\=c

我需要使用java split方法拆分它,这样我的断言不会抛出异常:

String[] res = "a=b\\=c".split("SPLIT_REGEX");
assert (res[0].equals("a") && res[1].equals("b\\=c"));

我已尝试[^\\]=作为SPLIT_REGEX,但它没有给出我想要的答案。有谁可以告诉我,我的目标是什么正确的正则表达式?

1 个答案:

答案 0 :(得分:2)

您可以在=之前使用否定反馈,以跳过\=中的分割:

String res = "a=b\\=c";
String[] toks = res.split("(?<!\\\\)=");
//=> ["a", "b\\=c"]

(?<!\\\\)是在\

之前=出现时断言失败的负面预测