我有一个字符串如下
"value1|value2,value3|value4\\|value5"
我需要通过|将此字符串拆分为多个部分字符。但是如果在|之前传递了转义(作为\ |)然后我不想在那里拆分它。是否有一个简单的正则表达式可以做到这一点。
答案 0 :(得分:3)
你需要使用负面的lookbehind断言。
"(?<!\\\\)\\|"
在正则表达式中使用四个反斜杠来匹配单个反斜杠字符。
示例:强>
String s = "value1|value2,value3|value4\\|value5";
String parts[] = s.split("(?<!\\\\)\\|");
System.out.println(Arrays.toString(parts));
输出:
[value1, value2,value3, value4\|value5]
答案 1 :(得分:3)