繁体   English   中英

Java正则表达式特殊字符

[英]Java Regular expression special characters

我想用x代替xx*

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

但是在正则表达式中*是特殊的,所以我需要给一个\\*但在Java中给一个\\我需要给\\\\

==>最后,它应该可以使用string.replaceAll("xx\\\\*", "x");

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

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

  2. 不要使用replaceAll() 处理文字字符串时,请使用replace()

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

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

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

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

使用string.replaceAll("xx\\\\*", "x"); 而不是string.replaceAll("xx\\*", "x");

一切正常。

现场演示这里

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM