কম্পিউটার টিউটোরিয়াল

জাভা রেগুলার এক্সপ্রেশন: ব্লাঙ্ক ফিল্ড ভ্যালিড সহ ইমেইল ভ্যালিডেশন


ব্লাঙ্ক-অ্যালোড ইমেইল রেজেক্স

নিচের রেজেক্স খালি ইনপুটও ভ্যালিড মানে (অপশনাল ইমেইল ফিল্ডের জন্য):

^([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()` পুরো স্ট্রিং ম্যাচ করে, তাই `^...$` অপ্রয়োজনীয় কিন্তু স্পষ্টতায় ভালো।

  1. জাভা রেগুলার এক্সপ্রেশনে \d কনস্ট্রাক্ট ব্যাখ্যা

  2. জাভা রেগুলার এক্সপ্রেশনে \W মেটাক্যারেক্টার ব্যাখ্যা

  3. জাভা রেগুলার এক্সপ্রেশনে [^...] কনস্ট্রাক্ট ব্যাখ্যা

  4. পাইথনে রেগুলার এক্সপ্রেশন দিয়ে ইমেইল আইডি ভ্যালিডেট করার পদ্ধতি