在Java开发中,使用正则表达式验证邮箱格式是最常见的需求之一。本文将详细介绍如何编写高效准确的Java邮箱正则表达式,并提供完整的实现代码。
String emailRegex = "^[a-zA-Z0-9_+&*-]+(?:\\.[a-zA-Z0-9_+&*-]+)*@(?:[a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,7}$";
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class EmailValidator {
private static final String EMAIL_REGEX =
"^[a-zA-Z0-9_+&*-]+(?:\\.[a-zA-Z0-9_+&*-]+)*@"
+ "(?:[a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,7}$";
private static final Pattern pattern = Pattern.compile(EMAIL_REGEX);
public static boolean isValid(String email) {
if (email == null) {
return false;
}
Matcher matcher = pattern.matcher(email);
return matcher.matches();
}
public static void main(String[] args) {
// 测试用例
System.out.println(isValid("test@example.com")); // true
System.out.println(isValid("user.name@domain.co")); // true
System.out.println(isValid("invalid.email@")); // false
System.out.println(isValid("@domain.com")); // false
}
}
最简单的邮箱验证只需要检查是否包含@符号和点号:
String basicRegex = "^.+@.+\\..+$";
更严格的验证规则,限制特殊字符的使用:
String strictRegex = "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,6}$";
支持国际化域名(IDN)的邮箱地址:
String idnRegex = "^[\\w-\\+]+(?:\\.[\\w-\\+]+)*@(?:[\\w-]+\\.)+[a-zA-Z]{2,7}$";
通过本文介绍的Java正则表达式,您可以轻松实现各种复杂度的邮箱格式验证功能。根据实际需求选择合适的正则表达式,既能保证用户体验,又能确保数据有效性。