matches()
文字列全体が一致した場合にのみtrueを返します。
正規表現に一致する部分文字列内の次の出現find()
を見つけようとします。「次へ」に重点が置かれていることに注意してください。つまり、複数回呼び出した結果は同じではない可能性があります。さらに、を使用して、部分文字列が一致した位置を返すように呼び出すことができます。find()
find()
start()
final Matcher subMatcher = Pattern.compile("\\d+").matcher("skrf35kesruytfkwu4ty7sdfs");
System.out.println("Found: " + subMatcher.matches());
System.out.println("Found: " + subMatcher.find() + " - position " + subMatcher.start());
System.out.println("Found: " + subMatcher.find() + " - position " + subMatcher.start());
System.out.println("Found: " + subMatcher.find() + " - position " + subMatcher.start());
System.out.println("Found: " + subMatcher.find());
System.out.println("Found: " + subMatcher.find());
System.out.println("Matched: " + subMatcher.matches());
System.out.println("-----------");
final Matcher fullMatcher = Pattern.compile("^\\w+$").matcher("skrf35kesruytfkwu4ty7sdfs");
System.out.println("Found: " + fullMatcher.find() + " - position " + fullMatcher.start());
System.out.println("Found: " + fullMatcher.find());
System.out.println("Found: " + fullMatcher.find());
System.out.println("Matched: " + fullMatcher.matches());
System.out.println("Matched: " + fullMatcher.matches());
System.out.println("Matched: " + fullMatcher.matches());
System.out.println("Matched: " + fullMatcher.matches());
出力されます:
見つかった:false
見つかった:true-位置4
見つかった:true-17位
見つかった:true-20位
見つかった:false
見つかった:false
一致:false
-----------
見つかった:true-位置0
見つかった:false
見つかった:false
一致:true
一致:true
一致:true
一致:true
呼び出したときに、気をつけてfind()
複数回の場合はMatcher
、オブジェクトがリセットされませんでした正規表現がで囲まれている場合でも、^
および$
完全な文字列にマッチします。
find()
複数回呼び出すと、同じ結果が異なる場合があることに注意してくださいMatcher
。以下の私の答えを参照してください。