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

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

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

例如,对于“开发者”这个词,它应该匹配’s’。 我可以使用以下代码来做到这一点:

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

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

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

 input.replaceAll("s$", " "); 

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

 input.replaceAll("(ed|s)$", " "); 

使用$

 Pattern p = Pattern.compile("s$"); 
  public static void main(String[] args) { String message = "hi this message is a test message"; message = message.replaceAll("message$", "email"); System.out.println(message); } 

检查一下, http://docs.oracle.com/javase/tutorial/essential/regex/bounds.html

看一下下面的例子:

 String ss = "Developers".replaceAll(".$", " ");