我希望将";"
替换为"\n"
,除非它以前导'\'进行转义。我还没弄明白正确的正则表达式。
这就是我所拥有的:
String s = "abc;efg\\;hij;pqr;xyz\\;123"
s.replaceAll("\\[^\\\\];", "\\\\n");
我希望上面的字符串替换为"abc\nefg\;hij;pqr;xyz\;123"
答案 0 :(得分:2)
使用负面看法:
s = s.replaceAll("(?<!\\\\);", "\n");
表达式(?<!\\)
(编码为java字符串文字"(?<!\\\\)"
)表示&#34;前一个字符不应该是反斜杠&#34;
测试代码:
String s = "abc;efg\\;hij;pqr;xyz\\;123";
s = s.replaceAll("(?<!\\\\);", "\n");
System.out.println(s);
输出:
abc
efg\;hij
pqr
xyz\;123