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

জাভায় একাধিক রেগুলার এক্সপ্রেশন প্যাটার্ন ইনপুটের সাথে মিলানো


"|" মেটা ক্যারেক্টার: জাভা রেগুলার এক্সপ্রেশনে "|" মেটা ক্যারেক্টারটি একাধিক রেগুলার এক্সপ্রেশন মিল করার সুযোগ দেয়। উদাহরণস্বরূপ, যদি আপনি একটি নির্দিষ্ট ইনপুট টেক্সটকে একাধিক এক্সপ্রেশন দিয়ে মিল করতে চান, তবে সেগুলোকে "|" দিয়ে আলাদা করতে হবে:

exp1|exp2|exp3

উদাহরণ ১: "|" অপারেটর ব্যবহার

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

public class SampleExample {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("Enter your input: ");
        String input = sc.nextLine();
        
        // রেগুলার এক্সপ্রেশন: ১০ অঙ্কের নম্বর OR স্বরবর্ণ দিয়ে শুরু হওয়া স্ট্রিং
        String regex = "\\d{10}|^[aeiou]";
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(input);
        
        if(matcher.find()) {
            System.out.println(input + " is valid");
        } else {
            System.out.println(input + " is not valid");
        }
    }
}

আউটপুট ১

Enter your input: 9848033228
9848033228 is valid

আউটপুট ২

Enter your input: an apple a day keeps doctor away
an apple a day keeps doctor away is valid

পদ্ধতি ২: List অবজেক্ট ব্যবহার

অন্য একটি সমাধান হলো সব রেগুলার এক্সপ্রেশনগুলো আলাদা করে Pattern অবজেক্ট হিসেবে কম্পাইল করে একটি লিস্ট-এ যোগ করা এবং তারপর ইনপুট টেক্সটে মিল খুঁজে বের করা:

List list = new ArrayList<>();
list.add(Pattern.compile(regex1));
list.add(Pattern.compile(regex2));
for (Pattern pattern: list) {
    Matcher matcher = pattern.matcher(input);
    if(matcher.find()) {
        // মিল পাওয়া গেলে
    } else {
        // মিল পাওয়া যাইনি
    }
}

উদাহরণ ২: List ব্যবহার করে

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

public class MultipleRegex {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("Enter your input: ");
        String input = sc.nextLine();
        
        String regex1 = "\\d{10}";
        String regex2 = "^[aeiou]";
        
        Pattern pattern1 = Pattern.compile(regex1);
        Pattern pattern2 = Pattern.compile(regex2);
        
        List patterns = new ArrayList<>();
        patterns.add(pattern1);
        patterns.add(pattern2);
        
        for (Pattern pattern: patterns) {
            Matcher matcher = pattern.matcher(input);
            if(matcher.find()) {
                System.out.println("For regex " + pattern.pattern() + " " + input + " is valid");
            } else {
                System.out.println("For regex " + pattern.pattern() + " " + input + " is not valid");
            }
        }
    }
}

আউটপুট ১

Enter your input: 9848033228
For regex \d{10} 9848033228 is valid
For regex ^[aeiou] 9848033228 is not valid

আউটপুট ২

Enter your input: an apple a day keeps doctor away
For regex \d{10} an apple a day keeps doctor away is not valid
For regex ^[aeiou] an apple a day keeps doctor away is valid
  1. জাভা রেগেক্স দিয়ে ক্যারেক্টার রেঞ্জ ম্যাচ করা

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

  3. জাভাতে রেগেক্স ব্যবহার করে ডেট ফরম্যাট ভ্যালিডেট করা (MM-DD-YYYY)

  4. জাভাতে রেগেক্স ব্যবহার করে স্ট্রিং থেকে HTML ট্যাগ এক্সট্র্যাক্ট করা