写在开头:这个系列主要是记录一下平时遇到的小练习这些,方便以后期末的时候复习哈哈哈。这个程序不一定最简单,也有可能有问题会不断的修改的。
正则表达式匹配邮箱
任务目标:实现正则表达式匹配邮箱
任务自述:在网上我们可以看到很多正则表达式匹配邮箱的方法,昨天再上课后,老师留了个题目也就是这个,于是想了下在使用\w匹配符的基础上进行了改造,主要有以下几个点需要注意,
1.开头结尾需要时标识符;
2.@前后两位需要时标识符;
3.不能连续出现多个点比如…;
4.域名需要有一个点;
这是我目前想到的几个判断标准,于是我们编写下面的程序进行实现,
package test4;
import java.util.Date;
//正则表达式判断是否为邮箱
public class Test5 {
public static void main(String[] args) {
//邮箱测试集
String email[] = {"[email protected]",
"[email protected]",
"[email protected]",
"[email protected]",
"[email protected]", //开头是点
"[email protected]", //@后是点
"[email protected]", //@前是点
"[email protected]", //连续两个点
"[email protected].", //结尾是点
"hshming@163com",}; //没有点
//正则表达式
String regx = "^\\w+(\\w|[.]\\w+)+@\\w+([.]\\w+){1,3}";
/*
正则表达式解析:
^\\w+ 表示开头是多个标识符
(\\w|[.]\\w+)+ 表示中间是标识符或者.标识符组成
@\\w+ 表示@之后跟着标识符
([.]\\w+){1,3} 表示由.标识符组成,结尾为标识符,三级域名到头
*/
for(int i = 0; i < email.length; i++){
//提示字段
if(i == 0){
System.out.println("下面开始正确邮箱测试");
}else if(i == 4){
System.out.println(" ");
System.out.println("下面开始错误邮箱测试");
}
//判断语句
if(email[i].matches(regx)){
System.out.println(email[i]+" ====> good");
}else{
System.out.println(email[i]+" ====> bad");
}
}
}
}
下面开始正确邮箱测试
[email protected] ====> good
[email protected] ====> good
[email protected] ====> good
[email protected] ====> good
下面开始错误邮箱测试
[email protected] ====> bad
[email protected] ====> bad
[email protected] ====> bad
[email protected] ====> bad
[email protected]. ====> bad
hshming@163com ====> bad
结语
就目前来看输出结果还是让我满意的,不过肯定有问题,后续也会不断更新,修改。
谢谢阅读。