Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Validate email bằng Java Regular Expressions


Regex Email chuẩn

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

Giải thích

  • ^ - đầu chuỗi
  • [\\w!#$%&'\\*+/=?\`{|}~^-]+ - local part: chữ, số, _ và các ký tự đặc biệt cho phép
  • (?:\\.[\\w...]+)* - các segment phân cách bằng dấu chấm
  • @ - ký tự @
  • (?:[a-zA-Z0-9-]+\\.)+ - domain labels
  • [a-zA-Z]{2,6} - TLD 2-6 chữ cái
  • $ - cuối chuỗi

Ví dụ hoàn chỉnh

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

public class Example {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("Nhập email: ");
        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("Match occurred - Email hợp lệ");
        } else {
            System.out.println("Match not occurred - Email không hợp lệ");
        }
    }
}

Kết quả

Nhập email: sample.123@gmail.com
Match occurred - Email hợp lệ

Lưu ý

  • Regex này cover hầu hết email thực tế nhưng không 100% theo RFC 5322 (quá phức tạp).
  • Thực tế nên dùng library validation (Apache Commons Validator, Hibernate Validator).
  • Java 10+: có thể dùng java.util.regex.Pattern.compile(regex, Pattern.COMMENTS) để viết regex readable hơn.