如何用一个替换'n'反斜杠(\)?

nan*_*itv 4 java regex replace

我想将'n'个斜杠挤出为1,其中n不固定.

例如:

String path = "Report\\\\\\n"; 
Run Code Online (Sandbox Code Playgroud)

预期产量: "Report\\n"

我尝试了以下方式

System.out.println(path.replaceAll("\\+", "\");
Run Code Online (Sandbox Code Playgroud)

但它正在打印 "Report\\\n"

我无法减少更多.

所有相关的问题/答案都与固定数量的斜杠有关.

有没有通用的方法我可以将所有反斜杠挤到一个?

Mar*_*oun 5

如果你打印path,你会得到:

Report\\\n
Run Code Online (Sandbox Code Playgroud)

那是因为\应该引用并且它是用\\Java 编写的.

你应该做:

System.out.println(path.replaceAll("\\\\+", "\\\\"));
Run Code Online (Sandbox Code Playgroud)

说明:

在(纯)正则表达式中,为了匹配文字 \,你应该引用它.所以它表示为:

\\
Run Code Online (Sandbox Code Playgroud)

在Java中,\表示为\\,简单的数学应该解释4 \s.