...
戻り値もtrueなので、Matcherクラスのメソッドを....
使用していると思います。find
これで、達成したいことが少なくとも 2 つあります。
- 文字列全体が
...
- 文字列に含まれているかどうかを確認したいが、それが正確に 3 つのドットである場合にのみ、その前後に追加のドットがあるかどうか
...
を受け入れたくありません。...
matches
ケース1を解決するには、次のようなメソッドを使用するだけです
Pattern p = Pattern.compile("\\.{3}");
Matcher m = p.matcher("...");
System.out.println(m.matches());//returns true
m = p.matcher("....");
System.out.println(m.matches());//returns false
2番目のケースを解決するには、ネガティブルックアラウンド...
メカニズムを使用して、正規表現が次のようになるように、前後にドットがあってはならないことを明示的に示す必要があります
Pattern p = Pattern.compile("(?<!\\.)\\.{3}(?!\\.)");
find
これで、おそらく以前と同じようにメソッドを使用できます。
Matcher m = p.matcher("some... words. with dots.. after..... them...");
while(m.find())
System.out.println(m.group()+" found at position "+m.start());
どちらが印刷されますか
... found at position 4
... found at position 42