加号字符(+)的正确正则表达式是String类中Java的replaceAll
方法的第一个参数(即要替换的字符串)是什么?我无法正确理解语法。
答案 0 :(得分:85)
您需要使用+
转义正则表达式的\
。
但是,Java使用String参数构造正则表达式,它使用\
作为自己的转义序列。所以你必须逃避\
本身:
"\\+"
答案 1 :(得分:31)
如有疑问,请让java为您完成工作:
myStr.replaceAll(Pattern.quote("+"), replaceStr);
答案 2 :(得分:14)
你需要用\来转义+,因为\本身是Java字符串中的一个特殊字符,你需要用另一个\来转义它。
因此,您的正则表达式字符串将在Java代码中定义为“\\ +”。
即。这个例子:
String test = "ABCD+EFGH";
test = test.replaceAll("\\+", "-");
System.out.println(test);
答案 3 :(得分:2)
如果你想要一个简单的字符串查找和替换(即你不需要正则表达式),使用StringUtils from Apache Commons可能会更简单,这将允许你写:
mystr = StringUtils.replace(mystr, "+", "plus");
答案 4 :(得分:2)
其他人已经说过正确的方法:
+
转发为\\+
Pattern.quote
方法。您可以使用的另一种方法是将+
放入字符类中。许多正则表达式元字符(.
,*
,+
等等)都在字符类中进行字面处理。
所以你也可以这样做:
orgStr.replaceAll("[+]",replaceStr);
答案 5 :(得分:0)
String str="Hello+Hello";
str=str.replaceAll("\\+","-");
System.out.println(str);
OR
String str="Hello+Hello";
str=str.replace(Pattern.quote(str),"_");
System.out.println(str);
答案 6 :(得分:0)
如何用不确定的重复次数替换多个“ +”?
示例:test + test + test + 1234
(+)或[+]似乎只选择一个文字字符,但重复一次。