英語 (またはヨーロッパ言語) の文の最後の単語に一致する Java コードではなく、正規表現パターンを探しています。この場合、最後の単語が「こんにちは」の場合、「こんにちは」ではなく「こんにちは」に一致させたいと考えています。
正規表現(\w+)\.$
は "hi." に一致しますが、出力は "hi" だけになるはずです。正しい正規表現は何ですか?
thufir@dur:~/NetBeansProjects/regex$
thufir@dur:~/NetBeansProjects/regex$ java -jar dist/regex.jar
trying
a b cd efg hi
matches:
hi
trying
a b cd efg hi.
matches:
thufir@dur:~/NetBeansProjects/regex$
コード:
package regex;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
String matchesLastWordFine = "a b cd efg hi";
lastWord(matchesLastWordFine);
String noMatchFound = matchesLastWordFine + ".";
lastWord(noMatchFound);
}
private static void lastWord(String sentence) {
System.out.println("\n\ntrying\n" + sentence + "\nmatches:");
Pattern pattern = Pattern.compile("(\\w+)$");
Matcher matcher = pattern.matcher(sentence);
String match = null;
while (matcher.find()) {
match = matcher.group();
System.out.println(match);
}
}
}
私のコードは Java で書かれていますが、それはここにもありません。Javaコードではなく、厳密に正規表現を探しています。(はい、Java で最後の文字を削除できることはわかっています。)
どの正規表現をパターンに入れる必要がありますか?