java邮箱格式校验

Cooking Regex微信公众号
正则表达式学习

 

一、测试文件

@gmail.com 
@yahoo.com 
@msn.com 
@hotmail.com 
@aol.com 
@ask.com 
@live.com 
@qq.com 
@0355.net 
@163.com 
@163.net 
@263.net 
@3721.net 
@yeah.net 
@googlemail.com 
@mail.com 
国外常用邮箱: 
@hotmail.com 
@msn.com 
@yahoo.com 
@gmail.com 
@aim.com 
@aol.com 
@mail.com 
@walla.com 
@inbox.com 
国内常见邮箱: 
@126.com 
@163.com 
@sina.com 
@21cn.com 
@sohu.com 
@yahoo.com.cn 
@tom.com 
@qq.com 
@etang.com 
@eyou.com 
@56.com 
@x.cn 
@chinaren.com 
@sogou.com 
@citiz.com 
国家或地区常用邮箱后缀: 
中国香港:
@hongkong.com 
@ctimail.com 
@hknet.com 
@netvigator.com 
@mail.hk.com 
@swe.com.hk 
@ITCCOLP.COM.HK 
@BIZNETVIGATOR.COM 
中国台湾:
@SEED.NET.TW 
@TOPMARKEPLG.COM.TW 
@PCHOME.COM.TW 
@***.hinet.net 
巴基斯坦:
@cyber.net.pk 
阿曼:
omantel.net.om 
意大利:
@libero.it 
南非:
@webmail.co.za 
新西兰:
@xtra.co.nz 
新加坡:
@pacific.net.sg 
@FASTMAIL.FM 
阿联酋:
@emirates.net.ae 
@eim.ae 
叙利亚:
@net.sy 
@scs-net.org 
@mail.sy 
土耳其:
@ttnet.net.tr 
@superonline.com 
也门:
@yemen.net.ye 
@y.net.ye 
塞浦路斯:
@cytanet.com.cy 
美国:
@aol.com 
@netzero.net 
@twcny.rr.com 
@comcast.net 
@warwick.net 
@comcast.net 
@cs.com 
@verizon.net 
澳大利亚:
@bigpond.com 
希腊:
@otenet.gr 
巴基斯坦 : 
@cyber.net.pk 
印度:
@vsnl.com 
@wilnetonline.net 
@cal3.vsnl.net.in 
@rediffmail.com 
@sancharnet.in
@NDF.VSNL.NET.IN 
@DEL3.VSNL.NET.IN 
新西兰 : 
@xtra.co.nz 
俄罗斯:
@yandex.ru 
德国:
@t-online.de ? 
以色列:
@NETVISION.NET.IL 
澳大利亚:
@BIGPOND.NET.AU 
俄罗斯:
@MAIL.RU EV 
泰国:
@ADSL.LOXINFO.COM 
叙利亚:
@SCS-NET.ORG 
阿拉伯联合酋长国:
@EMIRATES.NET.AE 
科威特:
@QUALITYNET.NET 
以色列:
@ZAHAV.NET.IL 
@netvision.net.il 
@xx.org.il 
越南:
@hn.vnn.vn 
@hcm.fpt.vn 
@hcm.vnn.vn 
日本
@candel.co.jp 
赞比亚:
@zamnet.zm 
阿根廷:
@amet.com.ar 
@infovia.com.ar
 马其顿:
@mt.net.mk
 几内亚:
@sotelgui.net.gn
 墨西哥:
@prodigy.net.mx
 孟加拉:
@citechco.net 
意大利:
@xxx.meh.es 
@terra.es
 法国:
@wannado.fr 
@mindspring.com 
@excite.com 
津巴布韦:
@africaonline.co.zw 
@samara.co.zw 
@zol.co.zw 
@mweb.co.zw 
科特迪瓦:
@aviso.ci 
@africaonline.co.ci 
@afnet.net 
纳米比亚:
@mti.gov.na 
@namibnet.com 
@iway.na 
@be-local.com 
尼泊尔:
@infoclub.com.np 
@mos.com.np 
@ntc.net.np 
汤加:
@kalianet.to 
阿塞拜疆:
@mail.ru 
印尼:
@dnet.net.id 
巴西:
@sinos.net 
澳大利亚:
@westnet.com.au 
@gionline.com.au 
@cairns.net.au 
土耳其:
@mynet.com 
马其顿:
@mt.net.mk 
爱尔兰:
@indigo.ie 
@eircom.net 
联合国:
@sbcglobal.net 
@ntlworld.com 
沙特阿拉伯:
@nesma.net.sa 
蒙古:
@mail.mn 
日耳曼:
@tiscali.co.uk 
瑞典:
@caron.se 
南非:
@vodamail.co.za 
奥地利:
@eunet.at 
希腊:
@spark.net.gr 
波兰:
@swiszcz.com 
法国:
@club-internet.fr 
挪威:
@walla.com

Keynes@yahoo.com
 Wallace Keynes Wallace 
Keynes@msn.com
Wallace Keynes Wallace 
Keynes@gmail.com
Wallace Keynes Wallace 
Keynes@aol.com
 Wallace Keynes 
Wallace 
Keynes@inbox.com
 Wallace Keynes Wallace 
Keynes@hotmail.com
 Ludwig Rhys Ludwig 
Rhys@msn.com
 Ludwig Rhys Ludwig 
Rhys@live.com
 Ludwig Rhys Ludwig 
Rhys@aol.com
 Ludwig Rhys Ludwig 
Rhys@hotmail.com

Invalid Emails
mkyong
mkyong@.com.my
mkyong123@gmail.a
mkyong123@.com
mkyong123@.com.com
.mkyong@mkyong.com
mkyong()*@gmail.com
mkyong@%*.com
mkyong..2002@gmail.com
mkyong.@gmail.com
mkyong@mkyong@gmail.com
mkyong@gmail.com.1a
 

二、代码

package com.test;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.regex.Pattern;

import org.apache.commons.lang.math.RandomUtils;

public class EmailRegexTest {

	/**
	 * 邮箱
	 */
	private static final String EMAIL_REGEX="^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$";
	
	public static void main(String[] args) {
		readTxt("E:\\email_test\\email.txt");		
	}
	
	/**
	 * 邮箱格式校验
	 * @param email
	 * @return
	 */
	public static boolean  checkEmail(String email){		
		return Pattern.matches(EMAIL_REGEX, email.trim());
	}
	
	/**
	 * 随机生成邮箱
	 * @param str
	 * @return
	 */
	public static String createEmail(String str ){		
		if(str.contains("@")){
			if(str.startsWith("@")){
				char[] arr={'a','b','c','d','e','f','g','h','i','j','k','l',
							'm','n','o','p','q','r','s','t','u','v','w','x',
							'y','z','0','1','2','3','4','5','6','7','8','9'};
				int headLen=RandomUtils.nextInt(9)+1;
				StringBuilder sb=new StringBuilder();
				for(int i=0;i<headLen;i++){
					if(RandomUtils.nextInt(2)==0){
						sb.append(arr[RandomUtils.nextInt(36)]);//小写
					}else{
						sb.append((arr[RandomUtils.nextInt(36)]+"").toUpperCase());//大写
					}
					
				}
				sb.append(str.trim());
				return sb.toString();
			}
		}
		return str.trim();
	}
	
	/**
	 * 读取txt文本
	 * 
	 * @param path
	 */
	public static void readTxt(String path) {
		System.out.println("读取的文件路径为:"+path);
		File file = new File(path);
		BufferedReader reader = null;
		String tempString = null;
		StringBuilder validEmail = new StringBuilder("validEmail:\r\n");
		StringBuilder invalidEmail = new StringBuilder("invalidEmail:\r\n");
		try {
			reader = new BufferedReader(new FileReader(file));
			while ((tempString = reader.readLine()) != null) {
				if (!tempString.isEmpty()) {
					if(checkEmail(tempString=createEmail(tempString))){
						validEmail.append(tempString+"\r\n");
					}else{
						invalidEmail.append(tempString+"\r\n");
					}
				}
			}
			writeText(validEmail.toString(), "E:\\email_test\\email_valid.txt");
			writeText(invalidEmail.toString(), "E:\\email_test\\email_invalid.txt");
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			if (reader != null) {
				try {
					reader.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
	}
	
	/**
	 * 写入文件
	 * @param text
	 * @param path
	 */
	public static void writeText(String text, String path) {
		System.out.println("保存的文件路径为:"+path);
		FileWriter fileWrite = null;
		try {
			fileWrite = new FileWriter(path);
			fileWrite.write(text);
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			try {
				fileWrite.flush();
				fileWrite.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}

}
 

三、测试结果

validEmail:
0eiR@gmail.com
n53m46B@yahoo.com
jyyGYH2@msn.com
ksAXOPJp@hotmail.com
6U@aol.com
2@ask.com
15@live.com
a@qq.com
uObfXROj@0355.net
hi@163.com
U2yn5r@163.net
C1yqtn6@263.net
E@3721.net
69IeL@yeah.net
6PAAf3@googlemail.com
Fwnri9v1@mail.com
242x4@hotmail.com
ig@msn.com
8@yahoo.com
9Mz7o1@gmail.com
a4x@aim.com
hGGG@aol.com
m@mail.com
5XGwVahL@walla.com
i@inbox.com
yAEr1Pzk@126.com
3l2njDs@163.com
tll9VQB@sina.com
8av@21cn.com
W64oDq@sohu.com
PPc2Pu7H@yahoo.com.cn
Vw33G@tom.com
qS5Z6AK@qq.com
iGJA2K@etang.com
PF87wW0@eyou.com
b5uB@56.com
3x@x.cn
8fc@chinaren.com
58ZzV@sogou.com
eGa@citiz.com
B3lQI6@hongkong.com
U90g977A@ctimail.com
1cWzkHN@hknet.com
0Um1ET2@netvigator.com
8pcc5SDAW@mail.hk.com
Mi@swe.com.hk
f2Ax@ITCCOLP.COM.HK
RFqy@BIZNETVIGATOR.COM
mI@SEED.NET.TW
veD@TOPMARKEPLG.COM.TW
yAcM4Z4AN@PCHOME.COM.TW
78j@cyber.net.pk
p1DAg2@libero.it
a80DJw6Zz@webmail.co.za
z1I5t868Y@xtra.co.nz
68qK@pacific.net.sg
xy4SQx@FASTMAIL.FM
P2@emirates.net.ae
P25Tcjys@eim.ae
dA@net.sy
MwJ18y4@scs-net.org
s7Wm@mail.sy
3Ko1xg@ttnet.net.tr
yy@superonline.com
XAyV2NUB0@yemen.net.ye
gr@y.net.ye
nE8@cytanet.com.cy
Oqs0Rc@aol.com
d7HSkjj@netzero.net
oktOFjtz@twcny.rr.com
il2@comcast.net
X@warwick.net
UL@comcast.net
27@cs.com
V1N9m5r6D@verizon.net
oPEzmf4@bigpond.com
0e35op1@otenet.gr
4@cyber.net.pk
3u31mEWOY@vsnl.com
mZBb@wilnetonline.net
T@cal3.vsnl.net.in
Al6@rediffmail.com
C@sancharnet.in
UTsG6Qh4@NDF.VSNL.NET.IN
Or0kLl@DEL3.VSNL.NET.IN
2r95@xtra.co.nz
39@yandex.ru
SCeo@NETVISION.NET.IL
o@BIGPOND.NET.AU
mny82O7Y@ADSL.LOXINFO.COM
Q@SCS-NET.ORG
2@EMIRATES.NET.AE
idBL@QUALITYNET.NET
545yZts@ZAHAV.NET.IL
3HWM3uPIM@netvision.net.il
Osgmnn@xx.org.il
I@hn.vnn.vn
pXJhrb8n@hcm.fpt.vn
kB1H@hcm.vnn.vn
gN4@candel.co.jp
6Yuvw3vZ@zamnet.zm
SY6QlS1j@amet.com.ar
wT0HJJ1dj@infovia.com.ar
wl134e@mt.net.mk
6IyUZYuX@sotelgui.net.gn
crV22k6l@prodigy.net.mx
1RZlg3Qcn@citechco.net
eCB@xxx.meh.es
R9Kvuug@terra.es
Bktp@wannado.fr
wse@mindspring.com
vn@excite.com
mI09zh2T@africaonline.co.zw
T5Dh@samara.co.zw
XvBV@zol.co.zw
6325P2B@mweb.co.zw
OXX@aviso.ci
S34@africaonline.co.ci
k@afnet.net
vynQ@mti.gov.na
sI3WsB@namibnet.com
RQv2rb@iway.na
Mn1x@be-local.com
zOH4bf3@infoclub.com.np
3qUvj@mos.com.np
JFs00@ntc.net.np
S38@kalianet.to
P8syo@mail.ru
IEE3f@dnet.net.id
NeyW6Q@sinos.net
hW1H8@westnet.com.au
7qEJQEb@gionline.com.au
31lNhC@cairns.net.au
lE1X82k7@mynet.com
PjxL@mt.net.mk
6l0Y5eH@indigo.ie
NuqgRxTJ7@eircom.net
reTRyW@sbcglobal.net
I@ntlworld.com
lOOs@nesma.net.sa
7BpMdM@mail.mn
C5bP0@tiscali.co.uk
h1G@caron.se
hP@vodamail.co.za
6ZOA@eunet.at
Xa@spark.net.gr
QTW@swiszcz.com
p8VGm@club-internet.fr
Jfe5w@walla.com
Keynes@yahoo.com
Keynes@msn.com
Keynes@gmail.com
Keynes@aol.com
Keynes@inbox.com
Keynes@hotmail.com
Rhys@msn.com
Rhys@live.com
Rhys@aol.com
Rhys@hotmail.com
 
invalidEmail:
国外常用邮箱:
国内常见邮箱:
国家或地区常用邮箱后缀:
中国香港:
中国台湾:
tx6i@***.hinet.net
巴基斯坦:
阿曼:
omantel.net.om
意大利:
南非:
新西兰:
新加坡:
阿联酋:
叙利亚:
土耳其:
也门:
塞浦路斯:
美国:
澳大利亚:
希腊:
巴基斯坦 :
印度:
新西兰 :
俄罗斯:
德国:
99DO0b20e@t-online.de ?
以色列:
澳大利亚:
俄罗斯:
EW3t1@MAIL.RU EV
泰国:
叙利亚:
阿拉伯联合酋长国:
科威特:
以色列:
越南:
日本
赞比亚:
阿根廷:
马其顿:
几内亚:
墨西哥:
孟加拉:
意大利:
法国:
津巴布韦:
科特迪瓦:
纳米比亚:
尼泊尔:
汤加:
阿塞拜疆:
印尼:
巴西:
澳大利亚:
土耳其:
马其顿:
爱尔兰:
联合国:
沙特阿拉伯:
蒙古:
日耳曼:
瑞典:
南非:
奥地利:
希腊:
波兰:
法国:
挪威:
Wallace Keynes Wallace
Wallace Keynes Wallace
Wallace Keynes Wallace
Wallace Keynes
Wallace
Wallace Keynes Wallace
Ludwig Rhys Ludwig
Ludwig Rhys Ludwig
Ludwig Rhys Ludwig
Ludwig Rhys Ludwig
Invalid Emails
mkyong
mkyong@.com.my
mkyong123@gmail.a
mkyong123@.com
mkyong123@.com.com
.mkyong@mkyong.com
mkyong()*@gmail.com
mkyong@%*.com
mkyong..2002@gmail.com
mkyong.@gmail.com
mkyong@mkyong@gmail.com
mkyong@gmail.com.1a

四、说明

这个表达式仅供参考,校验的结果还行,但不敢保证100%正确。
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值