在 Java 里,使用正则替换字符串通常有两种常见方式:
String.replaceAll(最常用)String result = str.replaceAll("正则表达式", "替换内容");
#String s = "abc123def456";
String r = s.replaceAll("\\d+", "#");
System.out.println(r); // abc#def#
String s = "a b\tc\nd";
String r = s.replaceAll("\\s+", "");
System.out.println(r); // abcd
Pattern + Matcher(更灵活)适合 复杂替换、回调替换、分组替换
import java.util.regex.*;
String s = "age:18, score:90";
Pattern p = Pattern.compile("(\\d+)");
Matcher m = p.matcher(s);
StringBuffer sb = new StringBuffer();
while (m.find()) {
m.appendReplacement(sb, "[" + m.group(1) + "]");
}
m.appendTail(sb);
System.out.println(sb.toString());
// age:[18], score:[90]
String s = "2024-01-02";
String r = s.replaceAll("(\\d{4})-(\\d{2})-(\\d{2})", "$2/$3/$1");
System.out.println(r); // 01/02/2024
String s = "a.b.c";
String r = s.replaceAll("\\.", "-");
System.out.println(r); // a-b-c
replaceFirst(只替换第一个)String s = "aaabbb";
String r = s.replaceFirst("a+", "X");
System.out.println(r); // Xbbb
✅ Java 正则字符串中要写双反斜杠
"\\d" // 表示数字
✅ replaceAll 用的是 正则表达式
"a.b".replaceAll(".", "#") // 会把所有字符替换掉
✅ 如果只是普通字符替换,用:
str.replace("old", "new");
如果你有具体替换场景(比如日志、JSON、手机号、SQL 等),可以直接贴例子,我可以帮你写正则。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。