java.regex প্যাকেজের Pattern ক্লাস একটি রেগুলার এক্সপ্রেশনের কম্পাইল করা রিপ্রেজেন্টেশন।
এই ক্লাসের compile() মেথড একটি স্ট্রিং মান গ্রহণ করে যা একটি রেগুলার এক্সপ্রেশন প্রতিনিধিত্ব করে এবং একটি Pattern অবজেক্ট ফেরত দেয়, নিচে এই মেথডের সিগনেচার দেওয়া হলো:
static Pattern compile(String regex)
এই মেথডের আরেকটি ভেরিয়েন্ট একটি ইন্টিজার মান গ্রহণ করে যা ফ্ল্যাগ প্রতিনিধিত্ব করে, নিচে দুটি প্যারামিটারসহ compile মেথডের সিগনেচার দেওয়া হলো:
static Pattern compile(String regex, int flags)
Pattern ক্লাস বিভিন্ন ফিল্ড প্রদান করে যারা প্রতিটি একটি ফ্ল্যাগ প্রতিনিধিত্ব করে:
| ক্র. নং | ফিল্ড এবং বর্ণনা |
|---|---|
| ১ | CANON_EQ দুটি ক্যারেক্টার ক্যানোনিক্যালি সমান হলে মেলে। |
| ২ | CASE_INSENSITIVE কেস নির্বিশেষে ক্যারেক্টার মেলায়। |
| ৩ | COMMENTS প্যাটার্নে হোয়াইটস্পেস এবং কমেন্ট অনুমতি দেয়। |
| ৪ | DOTALL ডটল মোড সক্ষম করে। যেখানে "." মেটা ক্যারেক্টার লাইন টার্মিনেটরসহ সব ক্যারেক্টার মেলায়। |
| ৫ | LITERAL প্যাটার্নের লিটারেল পার্সিং সক্ষম করে। অর্থাৎ ইনপুট সিকোয়েন্সের সব মেটাক্যারেক্টার এবং এস্কেপ সিকোয়েন্স লিটারেল ক্যারেক্টার হিসেবে বিবেচিত হয়। |
| ৬ | MULTILINE মাল্টিলাইন মোড সক্ষম করে অর্থাৎ পুরো ইনপুট সিকোয়েন্স একটি একক লাইন হিসেবে বিবেচিত হয়। |
| ৭ | UNICODE_CASE ইউনিকোড-সচেতন কেস ফোল্ডিং সক্ষম করে অর্থাৎ CASE_INSENSITIVE এর সাথে ব্যবহার করলে ইউনিকোড ক্যারেক্টার উভয় কেসে মিলবে। |
| ৮ | UNICODE_CHARACTER_CLASS পারদিভাষিত ক্যারেক্টার ক্লাস এবং POSIX ক্যারেক্টার ক্লাসের ইউনিকোড সংস্করণ সক্ষম করে। |
| ৯ | UNIX_LINES এই ফ্ল্যাগ ইউনিক্স লাইন মোড সক্ষম করে। |
flags() মেথড বর্তমান প্যাটার্নে ব্যবহৃত ফ্ল্যাগ ফেরত দেয়।
উদাহরণ
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class COMMENTES_Example {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Enter your name: ");
String name = sc.nextLine();
System.out.println("Enter your Date of birth: ");
String dob = sc.nextLine();
// MM-DD-YYY ফরম্যাটে তারিখ গ্রহণের রেগুলার এক্সপ্রেশন
String regex = "^(1[0-2]|0[1-9])/ # For Month\n"
+ "(3[01]|[12][0-9]|0[1-9])/ # For Date\n"
+ "[0-9]{4}$ # For Year";
// Pattern অবজেক্ট তৈরি
Pattern pattern = Pattern.compile(regex, Pattern.COMMENTS);
// Matcher অবজেক্ট তৈরি
Matcher matcher = pattern.matcher(dob);
boolean result = matcher.matches();
if(result) {
System.out.println("Given date of birth is valid");
} else {
System.out.println("Given date of birth is not valid");
}
System.out.println("Flag used: " + pattern.flags());
}
}
আউটপুট
Enter your name: Krishna Enter your Date of birth: 09/26/1989 Given date of birth is valid Flag used: 4