ব্লাঙ্ক-অ্যালোড ইমেইল রেজেক্স
নিচের রেজেক্স খালি ইনপুটও ভ্যালিড মানে (অপশনাল ইমেইল ফিল্ডের জন্য):
^([a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6})?$
রেজেক্স ভাঙন
| পar্ট | অর্থ |
|---|---|
^ | স্ট্রিংয়ের শুরু |
( ... )? | পুরো গ্রুপ অপশনাল (০ বা ১ বার) |
[a-zA-Z0-9._%+-]+ | লোকাল পার্ট: অক্ষর, সংখ্যা, . _ % + - |
@ | লিটারেল @ |
[a-zA-Z0-9.-]+ | ডোমেইন: অক্ষর, সংখ্যা, . - |
\.[a-zA-Z]{2,6} | TLD: ডট + ২-৬ অক্ষর |
$ | স্ট্রিংয়ের শেষ |
উদাহরণ ১: Pattern/Matcher ব্যবহার করে
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class EmailOptionalExample1 {
public static void main(String[] args) {
String regex = "^([a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,6})?$";
Scanner sc = new Scanner(System.in);
System.out.println("আপনার নাম: ");
String name = sc.nextLine();
System.out.println("আপনার ইমেইল (ঐচ্ছিক): ");
String e_mail = sc.nextLine();
System.out.println("আপনার বয়স: ");
int age = sc.nextInt();
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(e_mail);
if (matcher.find()) {
System.out.println("ইমেইল ভ্যালু স্বীকৃত");
} else {
System.out.println("ইমেইল ভ্যালু স্বীকৃত নয়");
}
}
}
আউটপুট উদাহরণ ১
আপনার নাম: krishna
আপনার ইমেইল (ঐচ্ছিক):
আপনার বয়স: 20
ইমেইল ভ্যালু স্বীকৃত
আউটপুট উদাহরণ ২
আপনার নাম: Rajeev
আপনার ইমেইল (ঐচ্ছিক): rajeev.123@gmail.com
আপনার বয়স: 25
ইমেইল ভ্যালু স্বীকৃত
উদাহরণ ২: String.matches() ব্যবহার করে (সহজ)
import java.util.Scanner;
public class EmailOptionalExample2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("ইমেইল অ্যাড্রেস লিখুন: ");
String e_mail = sc.nextLine();
String regex = "^([a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,6})?$";
boolean result = e_mail.matches(regex);
if (result) {
System.out.println("বৈধ ম্যাচ");
} else {
System.out.println("অবৈধ ম্যাচ");
}
}
}
আউটপুট উদাহরণ ২
ইমেইল অ্যাড্রেস লিখুন: rajeev.123@gmail.com
বৈধ ম্যাচ
ইমেইল অ্যাড্রেস লিখুন:
বৈধ ম্যাচ
সারসংক্ষেপ
রেজেক্সের বাইরে `(...)?` র্যাপ করলে পুরো প্যাটার্ন অপশনাল হয়। এটি ফর্ম ভ্যালিডেশনে অপশনাল ইমেইল ফিল্ড হ্যান্ডল করার জন্য পারফেক্ট। মনে রাখুন: `matches()` পুরো স্ট্রিং ম্যাচ করে, তাই `^...$` অপ্রয়োজনীয় কিন্তু স্পষ্টতায় ভালো।