কম্পিউটার টিউটোরিয়াল

জাভা রেগুলার এক্সপ্রেশন: কোয়ান্টিফায়ার (Quantifiers) সম্পূর্ণ গাইড


কোয়ান্টিফায়ার কী?

কোয়ান্টিফায়ার রেগেক্সে কতবার একটি প্যাটার্ন রিপিট হবে তা নির্দেশ করে। জাভা রেগেক্সে নিচের কোয়ান্টিফায়ারগুলো সাপোর্টেড:

কোয়ান্টিফায়ার টেবিল

কোয়ান্টিফায়ারব্যাখ্যাউদাহরণ
re*শূন্য বা অধিক বার[0-9]*: ০ বা অধিক ডিজিট
re?শূন্য বা এক বার[0-9]?: ০ বা ১ ডিজিট
re+এক বা অধিক বার[0-9]+: ১ বা অধিক ডিজিট
re{n}ঠিক n বার[0-9]{3}: ঠিক ৩ ডিজিট
re{n,}কমপক্ষে n বার[0-9]{3,}: কমপক্ষে ৩ ডিজিট
re{n,m}n থেকে m বার[0-9]{2,5}: ২ থেকে ৫ ডিজিট

কোড উদাহরণ: ৩ থেকে ৬ ডিজিট যাচাই

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class QuantifierExample {
    public static void main(String[] args) {
        String regex = "[0-9]{3,6}"; // ৩ থেকে ৬ ডিজিট
        Scanner sc = new Scanner(System.in);
        System.out.println("৫টি ইনপুট স্ট্রিং লিখুন: ");
        String[] input = new String[5];
        for (int i = 0; i < 5; i++) {
            input[i] = sc.nextLine();
        }
        
        Pattern p = Pattern.compile(regex);
        System.out.println("ম্যাচ করা ভ্যালুগুলো:");
        for (int i = 0; i < 5; i++) {
            Matcher m = p.matcher(input[i]);
            if (m.matches()) { // matches() = পুরো স্ট্রিং ম্যাচ
                System.out.println(m.group() + ": স্বীকৃত");
            }
        }
    }
}

আউটপুট উদাহরণ

৫টি ইনপুট স্ট্রিং লিখুন: 
12
154
4587
478365
4578952
ম্যাচ করা ভ্যালুগুলো:
154: স্বীকৃত
4587: স্বীকৃত
478365: স্বীকৃত

ব্যাখ্যা: ১২ (২ ডিজিট) — রিজেক্ট। ১৫৪ (৩ ডিজিট) — এক্সেপ্ট। ৪৫৮৭ (৪ ডিজিট) — এক্সেপ্ট। ৪৭৮৩৬৫ (৬ ডিজিট) — এক্সেপ্ট। ৪৫৭৮৯৫২ (৭ ডিজিট) — রিজেক্ট।

গ্রিডি, রিলাক্ট্যান্ট, পজেসিভ — ত্রयी

মোডসিনট্যাক্সআচরণ
গ্রিডি (ডিফল্ট)+, *, ?, {n,m}সর্বোচ্চ ম্যাচ, ব্যাকট্র্যাক করে
রিলাক্ট্যান্ট+?, *?, ??, {n,m}?ন্যূনতম ম্যাচ, ব্যাকট্র্যাক করে না (ফরওয়ার্ড)
পজেসিভ++, *+, ?+, {n,m}+সর্বোচ্চ ম্যাচ, ব্যাকট্র্যাক করে না

সারসংক্ষেপ

কোয়ান্টিফায়ার রেগেক্সের হৃদয়। `{n,m}` সবচেয়ে ফ্লেক্সিবল। গ্রিডি ডিফল্ট, রিলাক্ট্যান্ট (`?`) ন্যূনতম, পজেসিভ (`+`) ব্যাকট্র্যাকিং-ফ্রি। সঠিক কোয়ান্টিফায়ার বেছে নেওয়া রেজেক্সকে দ্রুত, সঠিক এবং রিডেবল করে তোলে।

  1. জাভা রেগুলার এক্সপ্রেশনে \B মেটাক্যারেক্টার ব্যাখ্যা

  2. জাভা রেগুলার এক্সপ্রেশনে \s মেটাক্যারেক্টার ব্যাখ্যা

  3. জাভা রেগুলার এক্সপ্রেশনে \w মেটাক্যারেক্টার ব্যাখ্যা

  4. জাভা রেগুলার এক্সপ্রেশনে \A মেটাক্যারেক্টার ব্যাখ্যা