替换所有悬空元字符

时间:2015-07-21 07:13:08

标签: java regex string

我有一个字符串,说1++++----2,我想用++++----替换string。 我使用java函数replaceAll,但每次使用它时都会警告悬空元字符

mystring.replaceAll("++++----", "string");

4 个答案:

答案 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中很方便。