জাভা রেগেক্সে ৩টি লজিক্যাল অপারেটর
- XY: X তারপর Y (কনক্যাটেনেশন / সিকোয়েন্স)
- X|Y: X অথবা Y (অল্টারনেশন / OR)
- (X): ক্যাপচারিং গ্রুপ
১. XY: X ফলোড বাই Y (সিকোয়েন্স)
দুই ক্যারেক্টার/প্যাটার্ন একসাথে ম্যাচ করে।
উদাহরণ: "am" ম্যাচ
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class LogicalXYExample {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("ইনপুট টেক্সট লিখুন: ");
String input = sc.nextLine();
String regex = "am"; // 'a' তারপর 'm'
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(input);
if (matcher.find()) {
System.out.println("ম্যাচ হয়েছে");
} else {
System.out.println("ম্যাচ হয়নি");
}
}
}
আউটপুট
ইনপুট টেক্সট লিখুন: sample text
ম্যাচ হয়েছে
ইনপুট টেক্সট লিখুন: hello how are you
ম্যাচ হয়নি
২. X|Y: X অথবা Y (অল্টারনেশন)
দুই এক্সপ্রেশনের যেকোনো একটি ম্যাচ করলে হয়।
উদাহরণ: "Hello" বা "welcome" ম্যাচ
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class LogicalOrExample {
public static void main(String[] args) {
String regex = "Hello|welcome";
String input = "Hello how are you welcome to Tutorialspoint";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(input);
int count = 0;
while (matcher.find()) {
count++;
}
System.out.println("ম্যাচের সংখ্যা: " + count);
}
}
আউটপুট
ম্যাচের সংখ্যা: 2
৩. (X): ক্যাপচারিং গ্রুপ
প্যারেনথেসিস দিয়ে একাধিক ক্যারেক্টারকে একক ইউনিট হিসেবে ট്രീট করা হয়। গ্রুপ নম্বর দিয়ে (`group(1)`, `group(2)`) রেজাল্ট অ্যাক্সেস করা যায়।
উদাহরণ: তিনটি গ্রুপ
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class CapturingGroupExample {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("ইনপুট টেক্সট লিখুন: ");
String input = sc.nextLine();
String regex = "(.*)(\\d+)(.*)"; // ৩টি ক্যাপচারিং গ্রুপ
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(input);
if (matcher.find()) {
System.out.println("গ্রুপ ০ (পুরো): " + matcher.group(0));
System.out.println("গ্রুপ ১: " + matcher.group(1));
System.out.println("গ্রুপ ২: " + matcher.group(2));
System.out.println("গ্রুপ ৩: " + matcher.group(3));
} else {
System.out.println("NO MATCH");
}
}
}
আউটপুট
ইনপুট টেক্সট লিখুন: sample data with 1234 (digits) in middle
গ্রুপ ০ (পুরো): sample data with 1234 (digits) in middle
গ্রুপ ১: sample data with 123
গ্রুপ ২: 4
গ্রুপ ৩: (digits) in middle
সারসংক্ষেপ
লজিক্যাল অপারেটরগুলো রেগেক্সের ফান্ডামেন্টাল: XY সিকোয়েন্স, X|Y অল্টারনেশন, (X) গ্রুপিং। এগুলো কম্বাইন করে যেকোনো জটিল প্যাটার্ন তৈরি করা যায়। অল্টারনেশনে `|` অপারেটর লো プロিয়োরিটি রাখে, তাই গ্রুপিং `(X|Y)` দিয়ে প্রায়োরিটি কন্ট্রোল করুন।