14

文字列の終わりと一致する正規表現パターンが必要です。

単語の接尾辞を削除するステミングアルゴリズムを実装しています。

たとえば、「開発者」という単語の場合、「s」と一致する必要があります。
私は次のコードを使用してそれを行うことができます:

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

文字列の末尾のみに一致する正規表現が必要ですreplaceLast()

4

4 に答える 4

21

「s」を一致させる必要がありますが、それが単語の最後の文字である場合に限ります。これは、境界アサーション$で実現されます。

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

正規表現を拡張すると、replaceAllへの1回の呼び出しで複数のサフィックスを置き換えることができます。

input.replaceAll("(ed|s)$", " ");
于 2013-01-16T09:12:21.120 に答える
3

使用$

Pattern p = Pattern.compile("s$");
于 2013-01-16T09:14:21.553 に答える
1
    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

于 2013-01-16T09:14:43.010 に答える
-1

次の例を見てください。

String ss = "Developers".replaceAll(".$", " ");
于 2013-01-16T09:13:45.033 に答える