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

জাভা রেগেক্স দিয়ে এক্সপ্রেশনের n সংখ্যক ওকারেন্স ম্যাচ করা

জাভার লালচী (greedy) কোয়ান্টিফায়ারগুলো এক্সপ্রেশনের একাধিক ওকারেন্স ম্যাচ করতে দেয়:

  • Exp{n} — এক্সপ্রেশন ঠিক n বার
  • Exp{n,} — এক্সপ্রেশন কমপক্ষে n বার
  • Exp{n,m} — এক্সপ্রেশন কমপক্ষে n এবং সর্বোচ্চ m বার

উদাহরণ ১: ঠিক ৫ অক্ষরের শব্দ গ্রহণ

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

public class RegexExample {
    public static void main(String args[]) {
        // ঠিক ৫ অক্ষরের ওয়ার্ড ক্যারেক্টার
        String regex = "\\w{5}";
        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);
        for (int i = 0; i < 5; i++) {
            Matcher m = p.matcher(input[i]);
            if (m.find()) {
                System.out.println(input[i] + ": গ্রহণযোগ্য");
            } else {
                System.out.println(input[i] + ": গ্রহণযোগ্য নয়");
            }
        }
    }
}

আউটপুট

৫টি ইনপুট স্ট্রিং দিন: rama raja raghu megha malya
rama: গ্রহণযোগ্য নয়
raja: গ্রহণযোগ্য নয়
raghu: গ্রহণযোগ্য
megha: গ্রহণযোগ্য
malya: গ্রহণযোগ্য

উদাহরণ ২: ২ থেকে ৬ টি নন-ওয়ার্ড ক্যারেক্টার

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

public class RegexExample {
    public static void main(String args[]) {
        // নন-ওয়ার্ড ক্যারেক্টার ২ থেকে ৬ টি
        String regex = "\\W{2,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);
        for (int i = 0; i < 5; i++) {
            Matcher m = p.matcher(input[i]);
            if (m.find()) {
                System.out.println(input[i] + " ম্যাচ হয়েছে");
            }
        }
    }
}

আউটপুট

৫টি ইনপুট স্ট্রিং দিন: hello how are you #$#% # #$@%%#&& sample text
#$#% ম্যাচ হয়েছে
#$@%%#&& ম্যাচ হয়েছে

উদাহরণ ৩: ১ থেকে ২০ অক্ষরের নাম যাচাই

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

public class RegexExample {
    public static void main(String args[]) {
        String regex = "[a-zA-Z]{1,20}";
        Scanner sc = new Scanner(System.in);
        System.out.println("ছাত্রের নাম দিন:");
        String name = sc.nextLine();
        Pattern p = Pattern.compile(regex);
        Matcher m = p.matcher(name);
        
        if (m.matches()) {
            System.out.println("নাম উপযুক্ত");
        } else {
            System.out.println("নাম অনুপযুক্ত");
        }
    }
}

আউটপুট

ছাত্রের নাম দিন: Mouktika
নাম উপযুক্ত
  1. জাভা রেগেক্স দিয়ে স্ট্রিং/লাইন এর শেষ ম্যাচ করা ($)

  2. জাভা রেগেক্স দিয়ে ক্যারেক্টার রেঞ্জ ম্যাচ করা

  3. জাভা রেগেক্স দিয়ে ফিক্সড সেট অফ ক্যারেক্টার ম্যাচ করা

  4. জাভা রেগেক্স দিয়ে যেকোনো ক্যারেক্টার ম্যাচ করা (.)