Java 中使用 String.replaceAll() 方法可以实现字符串的正则表达式匹配替换,通过正则表达式指定模式,使用替换字符替换匹配部分。例如,使用正则表达式 [0-9]+ 匹配字符串中的所有数字并用 * 替换。高级使用方法还支持捕获组引用,例如用 $1$1 将每个单词替换为其反转形式。replaceAll() 方法返回一个新字符串,但不修改原字符串。

Java正则表达式匹配字符串替换方法
正则表达式(Regex)是一种模式匹配语言,它允许您在字符串中查找和替换特定模式。Java 中提供了 String.replaceAll(String regex, String replacement) 方法来实现字符串的正则表达式匹配替换。
如何使用 replaceAll() 方法
replaceAll() 方法接受两个参数:
立即学习“Java免费学习笔记(深入)”;
- regex:要匹配的正则表达式。
- replacement:替换匹配模式的新字符串。
示例
以下示例将字符串中的所有数字替换为 "*":
String input = "This is a string with numbers 123.";
String output = input.replaceAll("[0-9]+", "*");
System.out.println(output); // 输出:This is a string with numbers ***.正则表达式语法
正则表达式使用特殊字符来表示要匹配的模式。以下是一些常见的字符:
-
.:匹配任何字符。 -
[ ]:匹配方括号内指定的字符集合,例如[0-9]匹配所有数字。 -
^:匹配字符串的开头。 -
$:匹配字符串的结尾。 -
*:匹配前面的元素零次或多次。 -
+:匹配前面的元素一次或多次。
高级替换
replaceAll() 方法还支持使用 $ 占位符来引用匹配的模式:
-
$0:匹配的整个字符串。 -
$1:第一个捕获组匹配的字符串。 -
$2:第二个捕获组匹配的字符串,依此类推。
以下示例将句子中的每个单词都用其反转形式替换:
String input = "This is a sentence.";
String output = input.replaceAll("([a-zA-Z]+)", "$1$1");
System.out.println(output); // 输出:Thisishisasiasesentence.其他笔记
-
replaceAll()方法返回一个新字符串,原字符串不会被修改。 - 正则表达式语法可能会因不同的编程语言或正则表达式库而异。











