সাবএক্সপ্রেশন/মেটাক্যারেক্টার "\d" ডিজিট ক্যারেক্টার ম্যাচ করে (অর্থাৎ [0-9])।
উদাহরণ ১: নির্দিষ্ট প্যাটার্ন "ডিজিট+স্পেস+24" ম্যাচ
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexExample {
public static void main(String args[]) {
String regex = "\\d 24";
String input = "This is sample text 12 24 56 89 24";
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(input);
int count = 0;
while (m.find()) {
count++;
}
System.out.println("ম্যাচের সংখ্যা: " + count);
}
}
আউটপুট
ম্যাচের সংখ্যা: 2
ব্যাখ্যা: ইনপুটে " 24" দুবার আছে (১২ ২৪ এবং ৮৯ ২৪) — প্রতিটোর আগে একটি ডিজিট ও স্পেস আছে।
উদাহরণ ২: ১০ ডিজিট ফোন নাম্বার যাচাই
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test {
public static void main(String args[]) {
String regex = "\\d{10}";
Scanner sc = new Scanner(System.in);
System.out.println("আপনার ফোন নম্বর দিন (১০ ডিজিট): ");
String input = sc.nextLine();
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(input);
if (m.find()) {
System.out.println("OK");
} else {
System.out.println("ভুল ইনপুট");
}
}
}
আউটপুট ১
আপনার ফোন নম্বর দিন (১০ ডিজিট): 9848022338 OK
আউটপুট ২
আপনার ফোন নম্বর দিন (১০ ডিজিট): 545 ভুল ইনপুট
নোট: find() সাবস্ট্রিং খুঁজে, matches() পুরো স্ট্রিং। উদাহরণ ২-এ find() ব্যবহার করা হয়েছে, তাই ইনপুটে ১০ ডিজিট কোথাও থাকলে OK হবে। স্ট্রিক্ট ভ্যালিডেশনের জন্য matches() বা ^\\d{10}$ ব্যবহার করুন।