表达式
正则表达式
元字符
因为 \ 和 " 或者 ’ 组合没法显⽰出来,因此下⾯的内容尽量的加了⼀个空格。java
字符
描述
\
将下⼀个字符标记为⼀个特殊字符、或⼀个原义字符、或⼀个 向后引⽤、或⼀个⼋进制转义符。例如,‘n’ 匹配字符 “n”。’\n’ 匹配⼀个换⾏符。序列 ’ \ \ ’ 匹配 " \ " ⽽ “\ (” 则匹配 " ("。
什么样的职业最危险
超级qq加速卡^
匹配输⼊字符串的开始位置。
$
匹配输⼊字符串的结束位置。
*
匹配前⾯的⼦表达式零次或屡次。例如,zo* 能匹配 “z” 以及 “zoo”。* 等价于{0,}。
+
匹配前⾯的⼦表达式⼀次或屡次。例如,‘zo+’ 能匹配 “zo” 以及 “zoo”,但不能匹配 “z”。+ 等价于 {1,}。
{n,m}
m 和 n 均为⾮负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。例如,“o{1,3}” 将匹配 “fooooood” 中的前三个 o。请注意在逗号和两个数之间不能有空格。
.
匹配除换⾏符(\n、\r)以外的任何单个字符。要匹配包括 ‘\n’ 在内的任何字符,请使⽤像"(.I\n)"的模式。
(pattern)
匹配 pattern 并获取这⼀匹配 。
[xyz]
字符集合。匹配所包含的任意⼀个字符。例如, ‘[abc]’ 能够匹配 “plain” 中的 ‘a’。
[a-z]
字符范围。匹配指定范围内的任意字符。例如,’[a-z]’ 能够匹配 ‘a’ 到 ‘z’ 范围内的任意⼩写字母字符。
\w
匹配字母、数字、下划线。等价于’[A-Za-z0-9_]’。
固然不⽌上⾯那么少的元字符,只列出来⽤到的,还有不少元字符,包括普通字符、⾮打印字符、特殊字符、限定符、定位符等。若是想要了解更多关于这⽅⾯的知识,能够点这⾥。正则表达式 - 教程web
电⼦邮箱格式验证
在⽹络中,电⼦邮箱能够⾃动接收⽹络任何电⼦邮箱所发的电⼦邮件,并能存储规定⼤⼩的等多种格式的电⼦⽂件。电⼦邮箱具备单独的⽹络域名,其电⼦邮局地址在@后标注,电⼦邮箱通常格式为:⽤户名@域名。正则表达式
—个完整的Internet邮件地址由如下两个部分组成,格式以下:登陆名@主机名.域名
中间⽤—个表⽰“在”(at)的符号“@”分开,符号的左边是对⽅的登陆名,右边是完整的主机名,它由主机名与域名组成。其中,域名由⼏部分组成,每⼀部分称为⼀个⼦域(Subdomain),各⼦域之间⽤圆点“.”隔开,每⼀个⼦域都会告诉⽤户⼀些有关这台邮件服务器的信息。express
从上⾯的描述就能够看出来,电⼦邮箱的格式范围很⼴,惟⼀⽐较明显的限制可能就是只有⼀个"@"符号,可是这并不表明咱们能胡来,根据国内⼀些对于注册邮箱帐号的限制,列了⼏条⽐较通⽤的电⼦邮箱格式限制:bash
“@”的左边限制:服务器
由a~z的英⽂字母(不区分⼤⼩写)开头
可由英⽂字母、0~9的数字、点、减号或下划线组成
长度为3~18个字符
不能以点、减号结尾
“@”的左边限制
正则表达式
英⽂字母、0~9的数字、下划线
\w+
减号、点
[-.]
李小冉孙东海事件长度为3~18个字符
{3,18}
不能以点、减号或下划线结尾
[-.][A-Za-z0-9]+
将上⾯的正则表达式按照必定的逻辑链接起来:⽹络
(\w+([-.][A-Za-z0-9]+)*){3,18}
⾄于⽤到了 ( )*,表明这⾥⾯的字符串可能会出现,也可能不出现。⽽ + 表明必定出现⼀次。dom
“@”的右边限制:svg
只能有⼀个点,点和"@"之间不能为空
可由英⽂字母、0~9的数字、点、减号或下划线组成
不能以点、减号或下划线结尾
“@”的右边限制
正则表达式
英⽂字母、0~9的数字、下划线
\w+
只能有⼀个点,点和"@"之间不能为空
@\w+([-.][A-Za-z0-9]+)* \.
减号、点
[-.]
不能以点、减号或下划线结尾馒头要蒸多久才能蒸熟
[-.][A-Za-z0-9]+
将上⾯的正则表达式按照必定的逻辑链接起来:
窦骁家世显赫
@\w+([-.][A-Za-z0-9]+)*\.\w+([-.][A-Za-z0-9]+)*
So,将这两段正则表达式连起来就是验证电⼦邮箱的正则表达式了:
^(\w+([-.][A-Za-z0-9]+)*){3,18}@\w+([-.][A-Za-z0-9]+)*\.\w+([-.][A-Za-z0-9]+)*$
以"^“开始,以”$"结束。
JAVA代码实现:
public static boolean isValidEmail(String email) {
if ((email != null) && (!email.isEmpty())) {
return Pattern.matches("^(\\w+([-.][A-Za-z0-9]+)*){3,18}@\\w+([-.][A-Za-z0-9]+)*\\.\\w+([-.][A-Za-z0-9]+)*$", email); }
戴娇倩个人资料return false;
}
测试结果截图:
若是以为上⾯的正则表达式太复杂,范围太⼴了,能够⽤下⾯这个:
[a-zA-Z0-9]+@[a-zA-Z0-9]+\.[a-zA-Z0-9]+
只能是0-9数字和⼤⼩写字母组成,-和多余的点都不⾏,可是这个可⽤于⼤部分场景!
发布评论