Java如何使用正则表达式验证电子邮件地址?

在此示例中,我们使用String的classmatches()方法根据给定的正则表达式将字符串匹配为有效的电子邮件地址。

此示例还演示了正则表达式验证电子邮件地址的功能。使用正则表达式可以更轻松地验证电子邮件等数据。在代码之后,您将看到以下代码中使用的正则表达式的含义。

package org.nhooo.example.lang;

public class EmailAddressValidation {
    private static final String EMAIL_REGEX =
        "^[\\w-_\\.+]*[\\w-_\\.]\\@([\\w]+\\.)+[\\w]+[\\w]$";

    public static void main(String[] args) {
        EmailAddressValidation validator = new EmailAddressValidation();

        System.out.println("isValid = "
            + validator.isValidEmailAddress("user@domain.com"));
        System.out.println("isValid = "
            + validator.isValidEmailAddress("user.name@domain.com"));
        System.out.println("isValid = "
            + validator.isValidEmailAddress("user.name@domain.com.sg"));
        System.out.println("isValid = "
            + validator.isValidEmailAddress("user.domain.com.sg"));
    }

    /**
     * Validates email address against email regular expression.
     *
     * @param email an email address to check
     * @return true if email address is valid otherwise return false.
     */
    private boolean isValidEmailAddress(String email) {
        return email.matches(EMAIL_REGEX);
    }
}

第一^[\w-_\.+]。这些^符号表示检查第一个字符。此正则表达式处理器,电子邮件地址应以字母数字值(az 0-9)组成的单词字符开头,也可以是连字符,下划线,点或加号。

第二部分*[\w-_\.]。该*符号表示匹配前面的零次或多次。作为第一部分,它告诉正则表达式处理器检查其他零个或多个字符,它还可以包含连字符,下划线和点。

第三部分\@([\w]+\.)+。进行检查,确认电子邮件地址中应包含该@符号,然后是一个或多个单词,并用点号分隔。

最后一部分是,[\w]+[\w]$检查在最后一个句号之后是否应该有另一个用于域后缀的单词,例如co.uk或co.id。然后$要求电子邮件地址以单词字符结尾。