java - 如何将单词的指定最后一个字母匹配并替换为句子中的不同字母

标签 java regex string

我从文本文件中读取。

我的句子是:税收质量加匹配

当我尝试该表达式和代码时。

实际输出:taes maeses plues mateses

预期输出:征税质量加匹配

String line_2 = Files.readAllLines(Paths.get("input.txt.txt")).get(0);
Pattern pattern_Plural = Pattern.compile("\\b*[(ss)(s)(sh)(ch)(s)(x)(z)]", Pattern.CASE_INSENSITIVE);

Matcher m_Plural = pattern_Plural.matcher(line_2);

if (m_Plural.find()) {
   String str1 = m_Plural.replaceAll("es");
   System.out.println(str1);
}

最佳答案

试试这个:

String line_2 = Files.readAllLines(Paths.get("input.txt.txt")).get(0);
System.out.println(line_2.replaceAll("(?i)(ss|s|sh|ch|s|x|z)(\\b)", "$1es"));

$1 表示捕获的组有助于保留文本的 (ss|s|sh|ch|s|x|z) 部分。

(?i) 用于不区分大小写。

输出:

taxes masses pluses matches

关于java - 如何将单词的指定最后一个字母匹配并替换为句子中的不同字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58518710/

相关文章:

将节点添加到根节点时出现 java.lang.NullPointerException

regex - 用于测试 VBA 中的一个或多个空格以在 Excel 单元格中查找匹配项的表达式

MySQL 查询替换字符串中所有出现的正则表达式

java - 将一种方法的输出替换为另一种方法的输出

java - 如何添加新的项目目录

java - RMI 只是一种基础技术或仍然值得使用

php - 如何在 preg_replace 中用 c(xxx) 替换 c(xxx)?

javascript - 拆分元素 ID 以仅返回数字

c - strtok - 如何避免换行并放入字符串数组?

java - 使用 java 以编程方式格式化 java 代码