我从文本文件中读取。
我的句子是:税收质量加匹配
当我尝试该表达式和代码时。
实际输出: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/