java正则表达式邮箱(JAVA中写邮箱格式的正则表达式,怎么写)

本文目录
JAVA中写邮箱格式的正则表达式,怎么写
合法E-mail地址:
1.
必须包含一个并且只有一个符号“@”
2.
第一个字符不得是“@”或者“.”
3.
不允许出现“@.”或者.@
4.
结尾不得是字符“@”或者“.”
5.
允许“@”前的字符中出现“+”
6.
不允许“+”在最前面,或者“+@”
正则表达式如下:
-----------------------------------------------------------------------
^(\w+((-\w+)|(\.\w+))*)\+\w+((-\w+)|(\.\w+))*\@+$
-----------------------------------------------------------------------
字符描述:
^
:匹配输入的开始位置。
\:将下一个字符标记为特殊字符或字面值。
*
:匹配前一个字符零次或几次。
+
:匹配前一个字符一次或多次。
(pattern)
与模式匹配并记住匹配。
x|y:匹配
x
或
y。
:表示某个范围内的字符。与指定区间内的任何字符匹配。
\w
:与任何单词字符匹配,包括下划线。
$
:匹配输入的结尾。
java :从控制台输入一个字符串,验证是不是邮箱
自定了一个合法邮箱规则,希望能帮助理解。代码如下:import java.util.Scanner;public class Test {public static void main(String+"; //告知此字符串是否匹配给定的正则表达式。if(mail.matches(reg)) {System.out.println("邮箱地址合法!");}else {System.out.println("邮箱地址不合法!");}}}这里主要是采用正则表达式的方式。
关于正则表达式,查看Pattern类和Matcher类。楼主可以可以到网上查看下相关资料。解释下上面的正则表达式String reg = "+";的意思就是 :一到多个字符 + @ + 一到多个字符 + 点 + 一到多个字符。正则表达式使用的好。
合法E-mail地址: 1. 必须包含一个并且只有一个符号“@” 2. 第一个字符不得是“@”或者“.” 3. 不允许出现“@.”或者.@ 4. 结尾不得是字符“@”或者“.” 5. 允许“@”前的字符中出现“+” 6. 不允许“+”在最前面,或者“+@”
Java web 题
/**
* @Author: Cool_Wu
* @Date: 2020-11-08 18:25
*/
public class Test {
public static void main(String args) {
boolean flag = verifyEmail(".wuyifan@163.com");
System.out.println(flag?"邮箱合法":"邮箱不合法");
}
/**
* 验证邮箱的方法
* @param email :字符串邮箱
* @return flag :布尔值,true表示合法,false表示不合法
*/
public static boolean verifyEmail(String email){
boolean flag; //定义布尔标记
if (email == null || email == ""){ //如果email为空或者空串,则直接返回false,避免空指针。
System.out.println("email不能为空");
return false;
}
int chr = email.charAt(0); //获取参数的首字符
if (chr 》= 48 && chr 《= 57){ //判断首字符是否为数字
flag = true;
}else if((chr 》= 65 && chr 《= 90) || (chr 》= 97 && chr 《= 122)) { //判断首字符是否为大小写字母
flag = true;
}else if (chr == 95){ //判断首字符是否为下划线
flag = true;
}else {
flag = false;
System.out.println("首字母不合法");
}
int index = email.indexOf("@");
int lastIndex = email.lastIndexOf("@");
if (index == -1 || index != lastIndex){ //判断是否包含且仅包含一个@符
flag = false;
System.out.println("@字符数量有误");
}
if (!email.contains(".")) { //判断是否至少包含一个.符
flag = false;
System.out.println("缺少.字符");
}
if (email.indexOf(".") 《 index){ //判断@字符是否在.字符前面
flag = false;
System.out.println("@字符必须在.字符前面");
}
if (index == email.length()-1 || email.lastIndexOf(".") == email.length()-1){ //判断邮箱是否以@或.字符结尾
flag = false;
System.out.println("不能以@字符或.字符结尾");
}
if (email.length() 》 30){ //判断邮箱长度是否超过30
flag = false;
System.out.println("邮箱长度不能超过30");
}
return flag;
}
}
测试结果

更多文章:
webservice接口集成平台(webservice接口老不老)
2025年11月21日 12:15
怎么做linux系统盘(如何制作启动u盘安装linux系统)
2026年4月20日 22:15
resume个人简历(留学个人简历resume的主要内容介绍)
2025年12月4日 21:00
transformers卡牌游戏(收藏战斗两不误变形金刚前线稀有卡牌全攻略)
2026年7月22日 21:15
命令提示符无法打开mysql(mysql命令行输入命令回车后没反应怎么回事具体如图)
2025年7月8日 13:30
怎么在字符数组后加字符串((C语言)如何将char**作为字符串数组,并且动态地添加字符串到其中)
2026年7月6日 11:30
chinesechildren是什么意思(Chinese+children是几个单词)
2025年12月17日 01:00
python版本(下载Python后发现还是之前的版本怎么办)
2025年11月29日 22:45
unix和windows的关系(WINDOWS与UNIX的联系)
2025年11月19日 16:45
powermill五轴编程(powermill编程软件!谁能详细介绍一下它的主要功能啊!还有它可以绘图么编程中要用到边界线等等…怎)
2026年8月11日 07:15
substantial变形单词(哪些英语单词可以表达 “重要的” 以及它们的区别)
2026年1月13日 17:00









