matches()
সম্পূর্ণ স্ট্রিংটি মিলে গেলেই সত্যটি ফিরে আসবে।
রেজেক্সের সাথে মিলে এমন স্ট্রিংয়ের মধ্যে পরবর্তী ঘটনাটি 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());
আউটপুট দেবে:
পাওয়া: মিথ্যা
পাওয়া: সত্য - অবস্থান 4
পাওয়া গেছে: সত্য - অবস্থান 17
পাওয়া গেছে: সত্য - অবস্থান 20
পাওয়া: মিথ্যা
পাওয়া: মিথ্যা
মিলছে: মিথ্যা
-----------
পাওয়া গেছে: সত্য - অবস্থান 0
পাওয়া: মিথ্যা
পাওয়া: মিথ্যা
মিলছে: সত্য
মিলছে: সত্য
মিলছে: সত্য
মিলছে: সত্য
সুতরাং, রেজেক্সটি চারপাশে থাকলেও এবং পুরো স্ট্রিংয়ের সাথে মিল রেখেও find()
যদি একাধিক বার কল করার সময় সাবধান হন theMatcher
^
$
find()
একাধিকবার কল করা তার জন্য বিভিন্ন ফলাফল দিতে পারেMatcher
। আমার উত্তর নীচে দেখুন।