如何使用Java的String.replaceAll方法替换加号字符

Joh*_*ley 44 java regex

加号字符(+)的正确正则表达式replaceAll是String类中Java 方法的第一个参数(即要替换的字符串)是什么?我无法正确理解语法.

too*_*kit 91

你需要使用转义+为正则表达式\.

但是,Java使用String参数来构造正则表达式,该表达式\用于其自己的转义序列.所以你必须逃避\自己:

"\\+"
Run Code Online (Sandbox Code Playgroud)

  • 如果你想替换一个固定的字符串,Pattern.quote(String)是一个非常好的朋友. (2认同)

jam*_*mes 32

如果有疑问,让java为你做的工作:

myStr.replaceAll(Pattern.quote("+"), replaceStr);
Run Code Online (Sandbox Code Playgroud)


Kri*_*ris 14

你需要用\来转义+,因为\本身是Java字符串中的一个特殊字符,你需要用另一个\来转义它.

因此,您的正则表达式字符串将在Java代码中定义为"\\ +".

即这个例子:

String test = "ABCD+EFGH";
test = test.replaceAll("\\+", "-");
System.out.println(test);
Run Code Online (Sandbox Code Playgroud)