"|" মেটা অক্ষর: মেটা অক্ষর "|" জাভা রেগুলার এক্সপ্রেশনে আপনাকে একাধিক রেগুলার এক্সপ্রেশনের সাথে মেলাতে অনুমতি দেয় উদাহরণস্বরূপ, যদি আপনি একটি নির্দিষ্ট ইনপুট টেক্সটকে একাধিক এক্সপ্রেশনের সাথে মেলাতে চান তাহলে আপনাকে এটি ব্যবহার করে আলাদা করতে হবে:
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(); //Regular expression String regex = "\\d{10}|^[aeiou]"; //Creating a pattern object Pattern pattern = Pattern.compile(regex); //Creating a Matcher object Matcher matcher = pattern.matcher(input); if(matcher.find()) { System.out.println(input+" is valid"); }else { System.out.println(input+" is not valid"); } } }
আউটপুট 1
Enter your input: 9848033228 9848033228 is valid
আউটপুট 2
Enter your input: an apple a day keeps doctor away an apple a day keeps doctor away is valid
তালিকা বস্তু ব্যবহার করা
আরেকটি সমাধান হল আপনি পৃথক প্যাটার্ন অবজেক্ট ব্যবহার করে সমস্ত রেগুলার এক্সপ্রেশন কম্পাইল করুন এবং একটি তালিকা অবজেক্টে যোগ করুন এবং ইনপুট টেক্সটে মিল খুঁজে বের করুন −
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 { . . . . . . . . . . . . . . . } }
উদাহরণ
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(); //Regular expressions String regex1 = "\\d{10}"; String regex2 = "^[aeiou]"; //Creating a pattern objects Pattern pattern1 = Pattern.compile(regex1); Pattern pattern2 = Pattern.compile(regex2); //Creating an List object List<Pattern> 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"); } } } }
আউটপুট 1
Enter your input: 9848033228 For regex \d{10} 9848033228 is valid For regex ^[aeiou] 9848033228 is not valid
আউটপুট 2
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