我有一个字符串,例如1++++----2
,我想用某个字符串替换++++----
,比如说string
。 在我使用java功能replaceAll
,但它保持警告每次我用它的时间晃晃悠悠元字符:replaceAll悬挂元字符
mystring.replaceAll("++++----", "string");
我有一个字符串,例如1++++----2
,我想用某个字符串替换++++----
,比如说string
。 在我使用java功能replaceAll
,但它保持警告每次我用它的时间晃晃悠悠元字符:replaceAll悬挂元字符
mystring.replaceAll("++++----", "string");
replaceAll
的第一个参数需要regualr表达和+
在regualr表达特殊的意义。逃脱+
使其正常工作。
mystring.replaceAll("\\+\\+\\+\\+----", "string");
您可以使用下面的正则表达式:
mystring.replaceAll("\\++-+", "string")
由于+
是你需要逃离这里it.so在"\\++-+"
第一部分\\+
将字符+
逐字匹配一个正则表达式字符,第二+
将匹配1个或多个字符组合+
,其余的是-+
,它们将匹配1个或多个-
。
转义+
,只有第一个或所有在这里没有关系。
String str = "1+++---2";
str = str.replaceAll("\\+\\+\\+---", "");
System.out.println(str);
输出:
12
或者使用replaceAll
,因为它的意思是使用:
str = str.replaceAll("[+-]", "");
当您更换一个固定的字符串,你需要一个replace
功能:
String mystring = "1++++----2";
System.out.println(mystring.replace("++++----", "string"));
请参阅demo
否则,您需要一个带有replaceAll
的正则表达式。
System.out.println(mystring.replaceAll("[+]+-+", "string"));
注意,你不需要逃避+
一个正则表达式字符类,它是Java里面方便。
如果您使用的是固定字符串替换,请使用'replace'方法 – nhahtdh
查看上一个问题,您似乎错误地处理了这个问题。 – nhahtdh
是的,它的工作原理。我认为只替换字符而不是字符串 –