例:
“ initial”应返回“ ineetial”,“ alumni”应返回“ alumnee”,“ illuminati”应返回“ illumeenati”

但是,使用此代码:

str = str.replaceAll("(\\w+)i(.?)", "$1ee$2");


我一直在获取“ initeeal”,“ alumnee”和“ illuminatee”,但我不明白为什么。

最佳答案

使用以下Pattern,并为您的初始单词字符添加一个不希望的量词:

String[] input = {"initial", "alumni", "illuminati"};
for (String s: input) {
    System.out.println(s.replaceAll("(\\w+?)i(.*)", "$1ee$2"));
}


输出量

ineetial
alumnee
illumeenati

10-08 00:06