matches()
yalnızca tam dize eşleşirse true değerini döndürür.
alt dizede normal ifadeyle eşleşen bir sonraki olayı find()
bulmaya çalışır . "Bir sonraki" konusuna dikkat edin. Bu, birden çok kez çağrılmanın sonucu aynı olmayabilir. Ayrıca, kullanarak alt dizenin eşleştiği konumu döndürmek için arayabilirsiniz .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());
Çıktı olacak:
Bulunan: yanlış
Bulunan: doğru - konum 4
Bulunan: doğru - konum 17
Bulunan: doğru - konum 20
Bulunan: yanlış
Bulunan: yanlış
Eşleşme: yanlış
-----------
Bulunan: doğru - konum 0
Bulunan: yanlış
Bulunan: yanlış
Eşleşme: gerçek
Eşleşme: gerçek
Eşleşme: gerçek
Eşleşme: gerçek
Çağrılırken Yani, dikkatli olun find()
eğer birden çok kez Matcher
nesne sıfırlamak değildi regex ile çevrilidir bile, ^
ve $
tam dize eşleşecek.
find()
Birden çok kez çağırmanın , bunun için farklı sonuçlar döndürebileceğini unutmayınMatcher
. Cevabımı aşağıda görebilirsiniz.