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

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


ইমেইল ভ্যালিডেশন রেজেক্স

RFC 5322 стандар্ড অনুযায়ী একটি ব্যাপক ইমেইল ভ্যালিডেশন রেজেক্স:

^[\\w!#$%&'*/+=?`{|}~^-]+(?:\\.[\\w!#$%&'*/+=?`{|}~^-]+)*@(?:[a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,6}$

রেজেক্স ভাঙন

পar্টঅর্থ
^স্ট্রিংয়ের শুরু
[\\w!#$%&'*/+=?`{|}~^-]+লোকাল পার্ট: অক্ষর, সংখ্যা, অন্ডারস্কোর, স্পেশাল চ্যার
(?:\\.[\\w...]+)*ডট-সেপারেটেড সাব-পার্ট (non-capturing)
@লিটারেল @ সিম্বল
(?:[a-zA-Z0-9-]+\\.)+ডোমেইন লেবেলস (non-capturing group)
[a-zA-Z]{2,6}TLD: ২ থেকে ৬ অক্ষর (com, org, net, info, museum)
$স্ট্রিংয়ের শেষ

কোড উদাহরণ

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class EmailValidationExample {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("একটি স্ট্রিং লিখুন: ");
        String input = sc.nextLine();
        
        String regex = "^[\\w!#$%&'*/+=?`{|}~^-]+(?:\\.[\\w!#$%&'*/+=?`{|}~^-]+)*@(?:[a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,6}$";
        
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(input);
        
        if (matcher.matches()) {
            System.out.println("ম্যাচ হয়েছে (বৈধ ইমেইল)");
        } else {
            System.out.println("ম্যাচ হয়নি (অবৈধ ইমেইল)");
        }
    }
}

আউটপুট উদাহরণ

একটি স্ট্রিং লিখুন: sample.123@gmail.com
ম্যাচ হয়েছে (বৈধ ইমেইল)

দ্রষ্টব্য ও সীমাবদ্ধতা

  • এই রেজেক্স RFC 5322 ফুল কম্প্লায়েন্ট নয় (RFC 5322 ফুল রেজেক্স খুব জটিল)।
  • TLD লেন্থ ২-৬ ধরে নেওয়া হয়েছে, কিন্তু নতুন gTLD গুলো (`.technology`, `.photography`) বড় হতে পারে।
  • ইন্টারন্যাশনালাইজড ইমেইল (Unicode ডোমেইন, নন-ল্যাটিন লোকাল পার্ট) এই রেজেক্সে কভার নয়।
  • প্রোডাকশনে javax.mail.internet.InternetAddress বা Apache Commons Validator `EmailValidator` ব্যবহার করুন।

সরল রেজেক্স (বেসিক ভ্যালিডেশনের জন্য)

String simpleRegex = "^[\\w.-]+@[\\w.-]+\\.[a-zA-Z]{2,}$";

সারসংক্ষেপ

ইমেইল ভ্যালিডেশন রেজেক্স লিখা চ্যালেঞ্জিং। উপরের রেজেক্স সাধারণ কেসের জন্য ভালো কাজ করে। প্রোডাকশন-গ্রেড ভ্যালিডেশনের জন্য লাইব্রেরি ব্যবহার করুন। মনে রাখুন: রেজেক্স দিয়ে ইমেইল ভ্যালিডেশন ১০০% সঠিক নয় — আসল ভ্যালিডেশন হয় ইমেইল পাঠিয়ে ভেরিফিকেশন লিংক ক্লিক করিয়ে।

  1. জাভা রেগেক্স দিয়ে ফিক্সড সেট অফ ক্যারেক্টার ম্যাচ করা

  2. জাভাতে রেগুলার এক্সপ্রেশন ব্যবহার করে স্ট্রিং থেকে লিডিং জিরো সরানো

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

  4. জাভাতে রেগুলার এক্সপ্রেশন ব্যবহার করে স্ট্রিং থেকে নম্বর বের করা