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