Life

Tuesday, February 26, 2019

正则表达式--Java邮箱验证

在Java编程中,如何验证电子邮件地址格式?
以下示例使用String类的matches()方法来验证电子邮件地址。
String.matches() 这个方法主要是返回是否匹配指定的字符串,如果匹配则为true,否则为false

package regex.test;

/**
 * description:验证电子邮件地址
 * @auther :jiangtoa.tian
 * @date :2019-02-26 15:46
 */
public class ValidateEmailFormat {
    public static void main(String[] args) {
        //String EMAIL_REGEX = "^[\\w-_\\.+]*[\\w-_\\.]\\@([\\w]+\\.)+[\\w]+[\\w]$"; //正则表达式1
        String EMAIL_REGEX ="\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*";    //正则表达式2
                String email1 = "admin@admin.com";
        boolean b = email1.matches(EMAIL_REGEX);
        System.out.println("email:" + email1 +" : valid = "+b);

        String email2 = "admin&admin.com";
        boolean b2 = email2.matches(EMAIL_REGEX);
        System.out.println("email:" + email2 +" : valid = "+b2);
    }
}
上述代码示例将产生以下结果:
email:admin@admin.com : valid = true
email:admin&admin.com : valid = false
代码实际上并不长,关键点是其中所使用的正则表达式.
在代码中使用了两个正则表达式:

  1. "^[\\w-_\\.+]*[\\w-_\\.]\\@([\\w]+\\.)+[\\w]+[\\w]$"
  2. "\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*"

都可以正确验证邮箱格式,所以说正则表达式并不是唯一的,关键是要能明白正则表达式的语法.
  1. 字符描述:
  2. ^ :匹配输入的开始位置。
  3. \:将下一个字符标记为特殊字符或字面值。
  4. * :匹配前一个字符零次或几次。
  5. + :匹配前一个字符一次或多次。
  6. [a-z] :表示某个范围内的字符。与指定区间内的任何字符匹配。
  7. \w :与任何单词字符匹配,包括下划线。
  8. $ :匹配输入的结尾。
对照语法表就能大致读懂正则表达式匹配的内容.
注:在 Java 中,\\ 表示:我要插入一个正则表达式的反斜线,所以其后的字符具有特殊的意义。在 Java 中正则表达式中则需要有两个反斜杠才能被解析为其他语言中的转义作用。这也就是为什么表示任一字符的正则表达式是 \\w.

版权声明
本博客所有的原创文章,作者皆保留版权。转载必须包含本声明,保持本文完整,并以超链接形式注明作者Leslie Tien和本文原始地址:
https://leslietien.blogspot.com/2019/02/java.html

No comments:

Post a Comment