当前位置: 首页 > news >正文

第二百零六节 Java正则表达式教程 - Java 正则表达式查找/替换

Java正则表达式教程 - Java正则表达式查找/替换

我们可以找到一个模式,并用一些文本替换,替换的文本取决于匹配的文本。

在Java中,我们可以在Matcher类中使用以下两个方法来完成这个任务。

Matcher appendReplacement(StringBuffer sb, String replacement)
StringBuffer appendTail(StringBuffer sb)

例子

假设我们有以下文本。

We have 7 tutorials for Java, 2 tutorials for Javascript and 1 tutorial for Oracle.

我们想在以下规则中将数字更改为文本。

  • 如果多于5,更换多
  • 如果小于5,请更换少量
  • 如果是1,替换为“只有一个”

更换后,上面的句子是

We have many tutorials for Java, a few tutorials for Javascript and only one tutorial for Oracle.

要找到所有数字,我们可以使用 \b\d+\b \b 标记单词边界。

以下代码显示如何使用正则表达式和appendReplacement()和appendTail()方法

import java.util.regex.Matcher;
import java.util.regex.Pattern;public class Main {public static void main(String[] args) {String regex = "\\d+";StringBuffer sb = new StringBuffer();String replacementText = "";String matchedText = "";String text = "We have 7 tutorials for Java, 2 tutorials for Javascript and 1 tutorial for Oracle.";Pattern p = Pattern.compile(regex);Matcher m = p.matcher(text);while (m.find()) {matchedText = m.group();int num = Integer.parseInt(matchedText);if (num == 1) {replacementText = "only one";} else if (num < 5) {replacementText = "a few";} else {replacementText = "many";}m.appendReplacement(sb, replacementText);}m.appendTail(sb);System.out.println("Old  Text: " + text);System.out.println("New Text: " + sb.toString());}
}

尝试一下

上面的代码生成以下结果。


 


http://www.mrgr.cn/news/12924.html

相关文章:

  • 02 vue3之ref全局桶
  • git restore对工作区及暂存区文件的影响
  • 在Ubuntu系统中安装R语言并使用R Markdown
  • java Boss直聘爬虫数据分析
  • 首次突破:蒙面仿人控制器实现全身运动的多模态追踪与现实世界控制
  • 《机器学习》—— AUC评估指标
  • 使用openpyxl读取两个表,进行相关内容的匹配和复制
  • kubectl陈述式资源管理
  • 【Selenium】UI自动化实践——输入验证码登录
  • 谈到这个痛点,写C的和不写C的码农都沉默了
  • git远程仓库关联切换迁移
  • 初识 C++
  • Java—Stream流
  • 服务器主动推送的方法
  • 微信小程序遇到的问题
  • JAVA电子器件制造行业生产管理系统计算机毕设计算机毕业设计
  • PostgreSQL 与对象存储的结合: 在 MinIO 中访问外部数据
  • Nginx 负载均衡详解
  • 代理IP的来源、工作原理与应用
  • 尚品汇-订单接口实现(四十)