Greedy Quantifiers এর ধারণা: *, +, {n}, {n,m}

Greedy, Reluctant, এবং Possessive Quantifiers - জাভা রেজেক্স (Java Regex) - Java Technologies

308

Java Regex (Regular Expressions)-এ Greedy Quantifiers হল এমন প্যাটার্ন, যা নির্দিষ্ট সংখ্যা বা শর্তের মধ্যে মিল খোঁজার জন্য ব্যবহৃত হয়। গ্রিডি কোয়ানটিফায়ারগুলি প্রাথমিকভাবে স্ট্রিংয়ের মধ্যে এমন সেগমেন্টের জন্য ব্যবহৃত হয়, যেগুলোর পরিমাণ সর্বাধিক হওয়ার চেষ্টা করে। এগুলি মূলত প্যাটার্নের সাথে মেলানোর সময় অধিক সংখ্যক অক্ষর নিয়ে মেলে, যতটা সম্ভব।

Greedy Quantifiers এর মধ্যে কিছু সাধারণ কোয়ানটিফায়ার রয়েছে: *, +, {n}, এবং {n,m}। এই কোয়ানটিফায়ারগুলি এমন ভাবে কাজ করে যাতে তারা যতটুকু সম্ভব ম্যাচ পেতে চেষ্টা করে, এবং এটাই তাদের "গ্রিডি" (greedy) আচরণ।

1. * (Asterisk) - 0 বা তার বেশি পুনরাবৃত্তি:

* কোয়ানটিফায়ারটি নির্দেশ করে যে, যেকোনো চরিত্র বা প্যাটার্ন শূন্য বা তার বেশি বার পুনরাবৃত্তি হতে পারে। অর্থাৎ, এটি zero বা more occurrences মেলে।

উদাহরণ:

import java.util.regex.*;

public class GreedyQuantifierAsteriskExample {
    public static void main(String[] args) {
        String text = "aaab aaaab";
        Pattern pattern = Pattern.compile("a*b");
        Matcher matcher = pattern.matcher(text);

        while (matcher.find()) {
            System.out.println("Match found: " + matcher.group());
        }
    }
}

Output:

Match found: aaab
Match found: aaaab

ব্যাখ্যা:

  • a*b প্যাটার্নটি b এর আগে যে কোনো সংখ্যা বা শূন্য a মেলে। এটি প্রথম aaab এবং দ্বিতীয় aaaab ম্যাচ করে, কারণ a* কোনো সংখ্যক a সহ মেলে।

2. + (Plus) - 1 বা তার বেশি পুনরাবৃত্তি:

+ কোয়ানটিফায়ারটি নির্দেশ করে যে, যেকোনো চরিত্র বা প্যাটার্ন একবার বা তার বেশি বার পুনরাবৃত্তি হতে পারে। অর্থাৎ, এটি one or more occurrences মেলে।

উদাহরণ:

import java.util.regex.*;

public class GreedyQuantifierPlusExample {
    public static void main(String[] args) {
        String text = "ab aaab aaaab";
        Pattern pattern = Pattern.compile("a+b");
        Matcher matcher = pattern.matcher(text);

        while (matcher.find()) {
            System.out.println("Match found: " + matcher.group());
        }
    }
}

Output:

Match found: ab
Match found: aaab
Match found: aaaab

ব্যাখ্যা:

  • a+b প্যাটার্নটি b এর আগে এক বা একাধিক a মেলে। ab, aaab, এবং aaaab সবই মেলে, কারণ এখানে এক বা তার বেশি a থাকতে হবে।

3. {n} (Exact n occurrences) - নির্দিষ্ট সংখ্যক পুনরাবৃত্তি:

{n} কোয়ানটিফায়ারটি নির্দেশ করে যে, একটি চরিত্র বা প্যাটার্ন ঠিক n বার পুনরাবৃত্তি হতে হবে। এটি একটি নির্দিষ্ট সংখ্যক বার পুনরাবৃত্তি খুঁজে।

উদাহরণ:

import java.util.regex.*;

public class GreedyQuantifierExactExample {
    public static void main(String[] args) {
        String text = "aab aaab aaaab";
        Pattern pattern = Pattern.compile("a{2}b");
        Matcher matcher = pattern.matcher(text);

        while (matcher.find()) {
            System.out.println("Match found: " + matcher.group());
        }
    }
}

Output:

Match found: aab

ব্যাখ্যা:

  • a{2}b প্যাটার্নটি এমন একটি স্ট্রিং খুঁজে যেখানে ঠিক দুইটি a এবং তারপরে একটি b রয়েছে। aab প্রথম স্ট্রিংটি মেলে, কিন্তু aaab এবং aaaab মেলে না, কারণ এখানে a এর সংখ্যা ২-এর বেশি।

4. {n,m} (Between n and m occurrences) - নির্দিষ্ট সীমার মধ্যে পুনরাবৃত্তি:

{n,m} কোয়ানটিফায়ারটি নির্দেশ করে যে, একটি চরিত্র বা প্যাটার্ন n থেকে m বার পুনরাবৃত্তি হতে পারে। এটি min to max occurrences মেলে।

উদাহরণ:

import java.util.regex.*;

public class GreedyQuantifierRangeExample {
    public static void main(String[] args) {
        String text = "aab aaab aaaab";
        Pattern pattern = Pattern.compile("a{2,3}b");
        Matcher matcher = pattern.matcher(text);

        while (matcher.find()) {
            System.out.println("Match found: " + matcher.group());
        }
    }
}

Output:

Match found: aab
Match found: aaab

ব্যাখ্যা:

  • a{2,3}b প্যাটার্নটি খুঁজে যেখানে a এর সংখ্যা ২ থেকে ৩ বার এবং তারপর একটি b থাকবে। এখানে aab এবং aaab মেলে, কিন্তু aaaab মেলে না, কারণ সেখানে a এর সংখ্যা ৩-এর বেশি।

Greedy Quantifiers এর চূড়ান্ত রিভিউ:

QuantifierDescriptionExample PatternMatches (for input "aaab aaab aaabb")
*Zero or more occurrencesa*baaab, aaab, aaabb
+One or more occurrencesa+baaab, aaab, aaabb
{n}Exactly n occurrencesa{2}baab
{n,m}Between n and m occurrencesa{2,3}baab, aaab
  • Greedy Quantifiers হল Regex-এর শক্তিশালী উপাদান যা স্ট্রিংয়ের মধ্যে একাধিক ম্যাচ খুঁজে বের করতে সহায়তা করে।
  • *, +, {n}, এবং {n,m} গ্রিডি কোয়ানটিফায়ারগুলি এমনভাবে কাজ করে যাতে তারা যতটুকু সম্ভব মেলানোর চেষ্টা করে, অর্থাৎ যতটুকু মিল পাওয়া যায়, ততটুকু ধরে রাখতে চেষ্টা করে।
  • এই কোয়ানটিফায়ারগুলির ব্যবহার স্ট্রিংয়ের সঠিক অংশ খুঁজে বের করতে কার্যকরী এবং শক্তিশালী টুল হিসেবে কাজ করে।
Content added By
Promotion

Are you sure to start over?

Loading...