私はかなり独特の問題を抱えています。のようなパターンを見つけようとしています[some string][word boundary]
。簡略化すると、私のコードは次のとおりです。
final Pattern pattern = Pattern.compile(Pattern.quote(someString) + "\\b");
final String value = someString + " ";
System.out.println(pattern.matcher(value).find());
私のロジックは、これtrue
が何であるかに関係なく、常に出力する必要があることを示してsomeString
います。でも:
someString
単語文字 (例: "abc") で終わる場合は、true
出力されます。- 単語境界で終わる場合
someString
(例: "abc.")false
が出力されます。
何が起こっているのですか?私の現在の回避策は、\W
の代わりに使用する\b
ことですが、その意味はわかりません。