我有一个字符串,说1++++----2
,我想用++++----
替换string
。
我使用java函数replaceAll
,但每次使用它时都会警告悬空元字符:
mystring.replaceAll("++++----", "string");
答案 0 :(得分:1)
replaceAll
的第一个参数采用了一个regualr表达式,而+
在regualr表达式中具有特殊含义。转义+
以使其正常工作。
mystring.replaceAll("\\+\\+\\+\\+----", "string");
答案 1 :(得分:1)
您可以使用以下正则表达式:
mystring.replaceAll("\\++-+", "string")
由于+
是正则表达式字符,因此您需要将其转义。因此,"\\++-+"
{}} {}} {}} {}} {{}} {}} {{}} 1}}将匹配1个或多个字符\\+
的组合,其余为+
,匹配1个或多个+
。
答案 2 :(得分:1)
逃离+
,只有第一个或所有不重要。
String str = "1+++---2";
str = str.replaceAll("\\+\\+\\+---", "");
System.out.println(str);
输出:
12
或者使用replaceAll
,因为它意味着使用:
str = str.replaceAll("[+-]", "");
答案 3 :(得分:0)
更换固定字符串时,需要replace
函数:
String mystring = "1++++----2";
System.out.println(mystring.replace("++++----", "string"));
请参阅demo
否则,您需要一个replaceAll
的正则表达式。
System.out.println(mystring.replaceAll("[+]+-+", "string"));
请注意,您不需要在正则表达式字符类中转义+
,这在Java中很方便。