[英]Java regular expression to validate email address that end with .services
使用java.util.regex.Matcher
验证电子邮件地址的正则表达式失败。 它会抛出无效的电子邮件地址或错误。
我将如何修改模式以允许以 .services 结尾的电子邮件地址
import java.util.regex.Matcher;
import java.util.regex.Pattern;
String emailAddress = myemail@something.services;
public static Pattern EMAIL_PATTERN = Pattern.compile(
"^[_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$");
Matcher matcher = ADDR_PATTERN.matcher(emailAddress);
import java.util.regex.Matcher;
import java.util.regex.Pattern;
String emailAddress = myemail@something.services;
public static Pattern EMAIL_PATTERN = Pattern.compile(
"^[_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$");
Matcher matcher = ADDR_PATTERN.matcher(emailAddress);
您应该使用“内置” javax.mail.internet.InternetAddress
格式验证器,而不是使用正则表达式。 随着您添加其他规则,正则表达式变得更加复杂,而对后缀的基本验证和严格验证是人类可读的。
public static boolean isValidEmailAddress(String email) {
try {
InternetAddress emailAddr = new InternetAddress(email);
emailAddr.validate(); //validates email format
return true;
} catch (AddressException ex) {
return false;
}
}
^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.services$
Pattern pattern = Pattern.compile("^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.services$", Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher("myemail@something.services");
System.out.println("result: "+matcher.find());
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.