带有转义字符的Java模式正则表达式

带有转义字符的Java模式正则表达式,java,Java,我想将“;”替换为“\n”,除非它是用前导“\”转义的。我还没有找到正确的正则表达式 以下是我所拥有的: String s = "abc;efg\\;hij;pqr;xyz\\;123" s.replaceAll("\\[^\\\\];", "\\\\n"); 我希望上面的字符串被替换为“abc\nefg\;hij;pqr;xyz\;123”使用反向查找: s = s.replaceAll("(?<!\\\\);", "\n"); 只需s.replace(“\\;”,“\n”)我不想替

我想将
“;”
替换为
“\n”
,除非它是用前导“\”转义的。我还没有找到正确的正则表达式

以下是我所拥有的:

String s = "abc;efg\\;hij;pqr;xyz\\;123"
s.replaceAll("\\[^\\\\];", "\\\\n");

我希望上面的字符串被替换为“abc\nefg\;hij;pqr;xyz\;123”

使用反向查找:

s = s.replaceAll("(?<!\\\\);", "\n");

只需
s.replace(“\\;”,“\n”)我不想替换\;与\n。只有带新行的分号。我修正了上面的正则表达式。所以,@DarthNinja,当你说“我想用'\n'替换'\;'时——你不是这个意思……对吗?请问你的意思。@Darth在
“hij”
“pqr”
之后的其他分号呢?还是只想替换第一个分号?所有未替换的分号都要替换为新行。任何\;应该排除在外。
String s = "abc;efg\\;hij;pqr;xyz\\;123";
s = s.replaceAll("(?<!\\\\);", "\n");
System.out.println(s);
abc
efg\;hij
pqr
xyz\;123