452. Java 正则表达式 - 文本替换

发布时间:2026/10/12 20:35:56
452. Java 正则表达式 - 文本替换 文章目录452. Java 正则表达式 - 文本替换1️⃣ replaceFirst() 和 replaceAll()功能示例 1替换单词 dog 为 cat示例 2使用正则表达式替换2️⃣ appendReplacement() 和 appendTail()功能示例3️⃣ String 类中的替换方法示例✅ 小结452. Java 正则表达式 - 文本替换在正则表达式处理中文本替换是非常常见的操作。Java 提供了多种方式完成替换从简单的替换到更灵活的逐步替换。1️⃣replaceFirst()和replaceAll()功能replaceFirst()只替换匹配到的第一个子串replaceAll()替换匹配到的所有子串示例 1替换单词dog为catimportjava.util.regex.Pattern;importjava.util.regex.Matcher;publicclassReplaceDemo{privatestaticStringREGEXdog;privatestaticStringINPUTThe dog says meow. All dogs say meow.;privatestaticStringREPLACEcat;publicstaticvoidmain(String[]args){PatternpPattern.compile(REGEX);Matchermp.matcher(INPUT);// 替换所有匹配INPUTm.replaceAll(REPLACE);System.out.println(INPUT);}}输出结果Thecat saysmeow.Allcats say meow.说明dog被替换为cat如果只想替换第一个匹配调用replaceFirst(REPLACE)即可。示例 2使用正则表达式替换importjava.util.regex.Pattern;importjava.util.regex.Matcher;publicclassReplaceDemo2{privatestaticStringREGEXa*b;privatestaticStringINPUTaabfooaabfooabfoob;privatestaticStringREPLACE-;publicstaticvoidmain(String[]args){PatternpPattern.compile(REGEX);Matchermp.matcher(INPUT);INPUTm.replaceAll(REPLACE);System.out.println(INPUT);}}输出结果-foo-foo-foo-说明a*b匹配零个或多个 a 后跟一个 b的模式可以看到复杂模式同样可以直接替换2️⃣appendReplacement()和appendTail()功能提供更灵活的替换控制可逐个处理匹配与replaceAll()效果相同但可在替换过程中进行逻辑处理示例importjava.util.regex.Pattern;importjava.util.regex.Matcher;publicclassRegexDemo{privatestaticStringREGEXa*b;privatestaticStringINPUTaabfooaabfooabfoob;privatestaticStringREPLACE-;publicstaticvoidmain(String[]args){PatternpPattern.compile(REGEX);Matchermp.matcher(INPUT);StringBuffersbnewStringBuffer();while(m.find()){// 逐个替换匹配m.appendReplacement(sb,REPLACE);}// 将剩余文本追加到 sbm.appendTail(sb);System.out.println(sb.toString());}}输出结果-foo-foo-foo-说明appendReplacement可以在每次匹配时动态生成替换内容appendTail用于追加最后剩余的文本3️⃣String类中的替换方法JavaString类提供了和Matcher类等效的方法使用更简单方法功能replaceFirst(String regex, String replacement)替换第一个匹配子串replaceAll(String regex, String replacement)替换所有匹配子串示例Stringinputaabfooaabfooabfoob;Stringresultinput.replaceAll(a*b,-);System.out.println(result);// 输出: -foo-foo-foo-说明内部实现原理与Pattern.compile(regex).matcher(str).replaceAll()相同适合快速处理简单替换场景✅ 小结replaceFirst()/replaceAll()→快速替换支持正则表达式appendReplacement()/appendTail()→灵活控制每个匹配可在替换过程中加入逻辑String.replaceFirst()/String.replaceAll()→方便快捷无需创建Pattern/Matcher

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询