replaceAll()
方法的语法为:
string.replaceAll(String regex, String replacement)
在这里, 字符串是String
类的对象。
replaceAll()参数
replaceAll()
方法采用两个参数。
- regex-要替换的正则表达式(可以是典型的字符串)
- 替换 -匹配的子字符串被替换为该字符串
replaceAll()返回值
-
replaceAll()
方法返回一个新字符串 ,其中每次出现的匹配子字符串都由替换 字符串替换 。
示例1:Java字符串replaceAll()
class Main {
public static void main(String[] args) {
String str1 = "aabbaaac";
String str2 = "Learn223Java55@";
// regex for sequence of digits
String regex = "\\d+";
// all occurrences of "aa" is replaceAll with "zz"
System.out.println(str1.replaceAll("aa", "zz")); // zzbbzzac
// replace a digit or sequence of digits with a whitespace
System.out.println(str2.replaceAll(regex, " ")); // Learn Java @
}
}
在上面的示例中, "\\d+"
是匹配一个或多个数字的正则表达式。要了解更多信息,请访问Java regex 。
在replaceAll()中转义字符
replaceAll()
方法可以使用正则表达式或典型字符串作为第一个参数。这是因为典型的字符串本身就是正则表达式。
在正则表达式中,有些字符具有特殊含义。这些元字符是:
\ ^ $ . | ? * + {} [] ()
如果需要匹配包含这些元字符的子字符串,则可以使用\
或使用replace()
方法对这些字符进行转义。
// Program to replace the + character
class Main {
public static void main(String[] args) {
String str1 = "+a-+b";
String str2 = "Learn223Java55@";
String regex = "\\+";
// replace "+" with "#" using replaceAll()
// need to espace "+"
System.out.println(str1.replaceAll("\\+", "#")); // #a-#b
// replace "+" with "#" using replace()
System.out.println(str1.replace("+", "#")); // #a-#b
}
}
如您所见,当我们使用replace()
方法时,我们不需要转义元字符。要了解更多信息,请访问:Java String replace()
如果只需要替换匹配子字符串的第一个匹配项,请使用Java String replaceFirst()方法。