java.regex প্যাকেজের Pattern ক্লাস একটি রেগুলার এক্সপ্রেশনের কম্পাইলড রিপ্রেজেন্টেশন। compile() মেথড একটি স্ট্রিং (রেগুলার এক্সপ্রেশন) গ্রহণ করে এবং একটি Pattern অবজেক্ট রিটার্ন করে।
উদাহরণ ১: বেসিক কম্পাইল ও ডিজিট চেক
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class CompileExample {
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);
// কম্পাইলড রেগেক্স প্রিন্ট
System.out.println("কম্পাইলড রেগুলার এক্সপ্রেশন: " + pattern.toString());
Matcher matcher = pattern.matcher(input);
if (matcher.find()) {
System.out.println("দেওয়া স্ট্রিং-এ ডিজিট আছে");
} else {
System.out.println("দেওয়া স্ট্রিং-এ ডিজিট নেই");
}
}
}
আউটপুট
ইনপুট স্ট্রিং দিন: hello my id is 1120KKA কম্পাইলড রেগুলার এক্সপ্রেশন: (\d) দেওয়া স্ট্রিং-এ ডিজিট আছে
উদাহরণ ২: ফ্ল্যাগসহ কম্পাইল (CASE_INSENSITIVE)
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class CompileExample {
public static void main(String args[]) {
// CASE_INSENSITIVE ফ্ল্যাগ সহ কম্পাইল
Pattern pattern = Pattern.compile("[t]", Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher("Tutorialspoint");
int count = 0;
while (matcher.find()) {
count++;
}
System.out.println("ম্যাচের সংখ্যা: " + count);
}
}
আউটপুট
ম্যাচের সংখ্যা: 3
সাধারণ ফ্ল্যাগস:
Pattern.CASE_INSENSITIVE- কেস উপেক্ষাPattern.MULTILINE- ^ এবং $ লাইন শুরু/শেষে কাজ করেPattern.DOTALL- ডট (.) নিউলাইনও ম্যাচ করেPattern.UNICODE_CASE- ইউনিকোড-আওয়্যার কেস-ইনসেনসিটিভ
এই ফ্ল্যাগগুলো বিটওয়াইজ OR (|) দিয়ে কম্বাইন করা যায়।