我有一个这样的字符串:
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
,但它没有给出我想要的答案。有谁可以告诉我,我的目标是什么正确的正则表达式?
答案 0 :(得分:2)
您可以在=
之前使用否定反馈,以跳过\=
中的分割:
String res = "a=b\\=c";
String[] toks = res.split("(?<!\\\\)=");
//=> ["a", "b\\=c"]
(?<!\\\\)
是在\
=
出现时断言失败的负面预测