কম্পিউটার

জাভা রেজেক্সে মিল () এবং সন্ধান () এর মধ্যে পার্থক্য কী?


java.util.regex.Matcher ক্লাস এমন একটি ইঞ্জিনকে প্রতিনিধিত্ব করে যা বিভিন্ন ম্যাচ অপারেশন করে। এই ক্লাসের জন্য কোন কনস্ট্রাক্টর নেই, আপনি java.util.regex.Pattern ক্লাসের matches() পদ্ধতি ব্যবহার করে এই ক্লাসের একটি অবজেক্ট তৈরি/প্রাপ্ত করতে পারেন।

উভয়ই মেলে() এবং find() ম্যাচার ক্লাসের মেথড ইনপুট স্ট্রিং-এ রেগুলার এক্সপ্রেশন অনুযায়ী মিল খুঁজে বের করার চেষ্টা করে। একটি মিলের ক্ষেত্রে, উভয়ই সত্য ফেরত দেয় এবং যদি একটি মিল পাওয়া না যায় তবে উভয় পদ্ধতি মিথ্যা ফেরত দেয়৷

প্রধান পার্থক্য হল ম্যাচস() পদ্ধতিটি প্রদত্ত ইনপুটের সমগ্র অঞ্চলের সাথে মেলানোর চেষ্টা করে যেমন আপনি যদি একটি লাইনে অঙ্কগুলি অনুসন্ধান করার চেষ্টা করেন তবে এই পদ্ধতিটি সত্য দেখায় যদি ইনপুটে অঞ্চলের সমস্ত লাইনে সংখ্যা থাকে৷

উদাহরণ1

import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test {
   public static void main(String[] args) {
      String regex = "(.*)(\\d+)(.*)";
      String input = "This is a sample Text, 1234, with numbers in between. "
         + "\n This is the second line in the text "
         + "\n This is third line in the text";
      //Creating a pattern object
      Pattern pattern = Pattern.compile(regex);
      //Creating a Matcher object
      Matcher matcher = pattern.matcher(input);
      if(matcher.matches()) {
         System.out.println("Match found");
      } else {
         System.out.println("Match not found");
      }
   }
}

আউটপুট

Match not found

যেখানে, find() পদ্ধতিটি প্যাটার্নের সাথে মেলে এমন পরবর্তী সাবস্ট্রিংটি খুঁজে বের করার চেষ্টা করে, অর্থাৎ যদি এই অঞ্চলে অন্তত একটি মিল পাওয়া যায় তবে এই পদ্ধতিটি সত্য হয়।

আপনি যদি নিম্নলিখিত উদাহরণটি বিবেচনা করেন, আমরা একটি নির্দিষ্ট লাইনের মাঝখানে অঙ্কগুলির সাথে মিল করার চেষ্টা করছি৷

উদাহরণ2

import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test {
   public static void main(String[] args) {
      String regex = "(.*)(\\d+)(.*)";
      String input = "This is a sample Text, 1234, with numbers in between. "
         + "\n This is the second line in the text "
         + "\n This is third line in the text";
      //Creating a pattern object
      Pattern pattern = Pattern.compile(regex);
      //Creating a Matcher object
      Matcher matcher = pattern.matcher(input);
      //System.out.println("Current range: "+input.substring(regStart, regEnd));
      if(matcher.find()) {
         System.out.println("Match found");
      } else {
         System.out.println("Match not found");
      }
   }
}

আউটপুট

Match found

  1. জাভাতে ইটারেটর এবং গণনার মধ্যে পার্থক্য

  2. জাভাতে অ্যারেলিস্ট এবং হ্যাশসেটের মধ্যে পার্থক্য

  3. JRE এবং JDK মধ্যে পার্থক্য কি?

  4. জাভা এবং জাভাস্ক্রিপ্টের মধ্যে পার্থক্য কী?