如何在java中使用正则表达式匹配字符串结尾

Vis*_*ire 9 java regex

我想要一个与字符串结尾匹配的正则表达式模式.

我正在实现一个词干算法,它将删除单词的后缀.

例如,对于'开发者'一词,它应匹配's'.我可以使用以下代码来做到这一点:

Pattern  p = Pattern.compile("s");
Matcher m = p.matcher("Developers");
m.relaceAll(" "); // it will replace all 's' with ' '
Run Code Online (Sandbox Code Playgroud)

我想要一个只匹配字符串结尾的正则表达式.基本上我想要一个方法replaceLast().

Mar*_*nik 15

你需要匹配"s",但前提是它只是一个单词中的最后一个字符.这是通过边界断言$来实现的:

input.replaceAll("s$", " ");
Run Code Online (Sandbox Code Playgroud)

如果增强正则表达式,则可以通过一次调用replaceAll替换多个后缀:

input.replaceAll("(ed|s)$", " ");
Run Code Online (Sandbox Code Playgroud)