Matcher.matches(), Matcher.find(), এবং Matcher.group() এর ব্যবহার

Matcher ক্লাসের মেথডসমূহ - জাভা রেজেক্স (Java Regex) - Java Technologies

379

java.util.regex.Matcher ক্লাসটি Java Regular Expressions (Regex) এর গুরুত্বপূর্ণ অংশ এবং এটি regex প্যাটার্নের সাথে স্ট্রিং এর মিল খোঁজার এবং প্রক্রিয়া করার জন্য ব্যবহৃত হয়। Matcher ক্লাসের মধ্যে কিছু গুরুত্বপূর্ণ মেথড রয়েছে যা স্ট্রিং-এ প্যাটার্ন ম্যাচিং এবং গ্রুপিং অপারেশনগুলি সহজ করে তোলে। এর মধ্যে অন্যতম মেথডগুলো হল matches(), find(), এবং group()

চলুন, এই মেথডগুলির ব্যবহার এবং তাদের কার্যকারিতা বিস্তারিতভাবে দেখার চেষ্টা করি।


1. Matcher.matches()

  • অর্থ: matches() মেথডটি স্ট্রিংটির পুরো অংশের সাথে regex প্যাটার্নটি ম্যাচ করে কিনা তা পরীক্ষা করে। অর্থাৎ, এটি স্ট্রিংয়ের শুরু থেকে শেষ পর্যন্ত প্যাটার্নটি পরীক্ষা করবে।
  • ফলাফল: যদি স্ট্রিংটি প্যাটার্নের সাথে পুরোপুরি মেলে, তাহলে এটি true ফেরত দেয়; অন্যথায়, false ফেরত দেয়।

ব্যবহার:

  • এটি সাধারণত তখন ব্যবহৃত হয় যখন আপনি নিশ্চিত হতে চান যে স্ট্রিংটি পুরোপুরি একটি নির্দিষ্ট প্যাটার্ন অনুসরণ করছে কি না।

উদাহরণ:

import java.util.regex.*;

public class MatcherMatchesExample {
    public static void main(String[] args) {
        // Regex pattern
        String pattern = "hello";

        // String to match
        String text = "hello";

        // Compile the pattern
        Pattern p = Pattern.compile(pattern);

        // Create a matcher
        Matcher m = p.matcher(text);

        // Check if the entire string matches the pattern
        if (m.matches()) {
            System.out.println("Pattern matched!");
        } else {
            System.out.println("Pattern not matched.");
        }
    }
}

আউটপুট:

Pattern matched!

ব্যাখ্যা:

  • এখানে matches() মেথডটি পরীক্ষা করেছে যে স্ট্রিং "hello" পুরোপুরি "hello" প্যাটার্নের সাথে মেলে কি না, এবং এটি true ফেরত দেয়।

2. Matcher.find()

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

ব্যবহার:

  • এটি ব্যবহার করা হয় যখন আপনি চান একটি স্ট্রিংয়ের মধ্যে প্যাটার্নের কোনো একটি অংশ খুঁজে বের করতে।

উদাহরণ:

import java.util.regex.*;

public class MatcherFindExample {
    public static void main(String[] args) {
        // Regex pattern
        String pattern = "world";

        // String to search
        String text = "hello world, welcome to Java";

        // Compile the pattern
        Pattern p = Pattern.compile(pattern);

        // Create a matcher
        Matcher m = p.matcher(text);

        // Find the first occurrence of the pattern
        if (m.find()) {
            System.out.println("Pattern found: " + m.group());
        } else {
            System.out.println("Pattern not found.");
        }
    }
}

আউটপুট:

Pattern found: world

ব্যাখ্যা:

  • find() মেথডটি "world" প্যাটার্নটি "hello world, welcome to Java" স্ট্রিংয়ের মধ্যে খুঁজে পেয়েছে এবং true ফেরত দেয়। এর পরে group() মেথডটি সঠিক অংশটি বের করে দেখায়।

3. Matcher.group()

  • অর্থ: group() মেথডটি যখন কোনো মেথড (যেমন find()) প্যাটার্ন ম্যাচ করার পর কল করা হয়, তখন এটি সেই অংশটি (match) ফেরত দেয় যেটি প্যাটার্নের সাথে মিলে গেছে। আপনি এটি ব্যবহার করে capturing groups (প্যাটার্নের মধ্যে প্যারেন্টেসিসের ভিতরে) থেকে মেলে এমন অংশও বের করতে পারেন।
  • ফলাফল: যদি find() বা matches() সফলভাবে কোনো মিল খুঁজে পায়, তবে group() মেথডটি সেই মিল পাওয়া অংশটি ফেরত দেয়।

ব্যবহার:

  • এটি ব্যবহার করা হয় যখন আপনি প্যাটার্নের কোনো নির্দিষ্ট অংশ বা গ্রুপ খুঁজে পেতে চান।

উদাহরণ:

import java.util.regex.*;

public class MatcherGroupExample {
    public static void main(String[] args) {
        // Regex pattern with a capturing group
        String pattern = "(\\w+)\\s+(\\w+)"; // Match two words separated by space

        // String to search
        String text = "hello world";

        // Compile the pattern
        Pattern p = Pattern.compile(pattern);

        // Create a matcher
        Matcher m = p.matcher(text);

        // Check if the pattern is found
        if (m.find()) {
            // Retrieve the matched groups
            System.out.println("Group 1: " + m.group(1)); // First word
            System.out.println("Group 2: " + m.group(2)); // Second word
        } else {
            System.out.println("Pattern not found.");
        }
    }
}

আউটপুট:

Group 1: hello
Group 2: world

ব্যাখ্যা:

  • এখানে প্যাটার্ন (\\w+)\\s+(\\w+) দুটি শব্দ খুঁজে পায়, যেখানে প্রথম গ্রুপটি hello এবং দ্বিতীয় গ্রুপটি world
  • group(1) এবং group(2) ব্যবহার করে দুটি গ্রুপের মান আলাদাভাবে বের করা হয়েছে।

সারাংশ:

  • Matcher.matches(): পুরো স্ট্রিংয়ের সাথে প্যাটার্নটি ম্যাচ করে কিনা তা পরীক্ষা করে।
  • Matcher.find(): স্ট্রিংয়ের কোনো অংশের সাথে প্যাটার্নটি মিলছে কি না তা পরীক্ষা করে।
  • Matcher.group(): প্যাটার্নের সঠিক অংশ বা গ্রুপ বের করে, যা find() বা matches() দ্বারা ম্যাচ করা হয়েছে।

এই তিনটি মেথডের সাহায্যে আপনি Java তে Regular Expressions ব্যবহার করে স্ট্রিং ম্যানিপুলেশন, টেক্সট ভ্যালিডেশন এবং প্যাটার্ন মেলানো সহজে করতে পারবেন।

Content added By
Promotion

Are you sure to start over?

Loading...