Java正则表达式特殊字符

时间:2013-09-04 12:20:24

标签: java regex

我想将xx*替换为x

我尝试了string.replaceAll("xx*", "x");

但正则表达式*很特别所以我需要提供一个\* 但要在java中提供\,我需要提供\\

==>最后它应该与string.replaceAll("xx\\*", "x");

一起使用

但是当字符串包含xx*时,上述语句无法将xx*替换为x

4 个答案:

答案 0 :(得分:7)

  1. 您必须将replaceAll()调用的结果重新分配给字符串变量 - 该方法返回一个新字符串,而不是修改您调用它的字符串。< / p>

  2. 请勿使用replaceAll() !!处理文字字符串时使用replace()

    string = string.replace("xx*", "x");
    

答案 1 :(得分:1)

字符串是不可变的。将replaceAll的结果分配给原始值

string = string.replaceAll("xx\\*", "x");

答案 2 :(得分:1)

string.replaceAll("xx\\*", "x")不会更改给定的字符串,因为字符串在Java中是不可变的。您需要使用返回的值,例如将其分配回原始变量:string = string.replaceAll("xx\\*", "x")

答案 3 :(得分:0)

使用string.replaceAll("xx\\*", "x");代替string.replaceAll("xx\*", "x");

这很好。

现场演示here