面试题 正则表达式 验证邮箱 Pattern.matches
故事背景
今天面试遇到这道题,对正则表达式还是有些懵,面试完回家复盘实现一下。这里使用到了 Pattern 这个类来校验正则表达式。
正则表示式分析:
^([a-z0-9A-Z]+[-|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$
#分解:
^ #匹配字符串的开始位置。
([a-z0-9A-Z]+[-|\\.]?)+ # [a-z0-9A-Z]:匹配上述任何一个。 +:匹配一次或多次前面的原子。 [-|\\.]:指定字符。?:匹配0次、1次前面的原子
[a-z0-9A-Z] # [a-z0-9A-Z]:匹配上述任何一个。
@ # 固定字符
([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+ # [a-z0-9A-Z]:匹配上述任何一个。 +:匹配一次或多次前面的原子。?:匹配0次、1次前面的原子。 \\.:转义符,把特殊字符转义为字符串的.。 +:匹配一次或多次前面的原子。
[a-zA-Z]{2,} # [a-zA-Z]:匹配大小写字母。{2,}:前面的原子至少出现两次
$ #匹配字符串的结束位置。
特殊字符
正则表达式识别的特殊字符包括:.*[]^${}\+?|()
如果要用某个特殊字符作为文本字符,就必须 转义 。在转义特殊字符时,你需要在它前面加一个特殊字符反斜杠(\)来告诉正则表达式引擎应该将接下来的字符当作普通的文本字符。
图解


代码实现
package ffffl.cn.test;
import java.util.Scanner;
import java.util.regex.Pattern;
/**
* @author chihiro
* 面试题:
* 1. 正则表达式 验证邮箱
*/
public class demo1 {
// 正则表达式
public static final String REGEX_EMAIL = "^([a-z0-9A-Z]+[-|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$";
public static void main(String[] args) {
demo1 demo1 = new demo1();
demo1.enter();
}
public void enter(){
Scanner scanner = new Scanner(System.in);
for (int i = 0; i <10;i++){
if (scanner.hasNext()) {
String s = scanner.next();
System.out.println(s);
Boolean email = isEmail(s);
if (email){
System.out.println("验证通过!");
}else{
System.out.println("验证不通过!");
}
}
}
scanner.close();
}
// 校验邮箱
public Boolean isEmail(String email){
if(email.isEmpty()) {
return false;
}
return Pattern.matches(REGEX_EMAIL,email);
}
}
面试题 正则表达式 验证邮箱 Pattern.matches的更多相关文章
- favicon.ico应用与正则表达式验证邮箱(可自动删除前后的空格)
1.favicon.ico制作:favicon.ico可以ps制作;“shortcut icon”中间有一个空格 <head> <link rel="shortcut ic ...
- web开发常用的js验证,利用正则表达式验证邮箱、手机、身份证等输入
正则表达式验证 //邮箱 \-])+\.)+([a-zA-Z0-]{,})+$/; email = document.getElementById("email").value; ...
- java正则表达式验证邮箱、手机号码
/** * 验证邮箱地址是否正确 * @param email * @return */ public static boolean checkEmail(String email){ boolean ...
- Android 使用正则表达式验证邮箱格式是否正确
/** * 验证邮箱格式是否正确 */ public boolean emailValidation(String email) { String regex = "\\w+([-+.]\\ ...
- js中通过正则表达式验证邮箱是否合法
文章目录 1.效果展示 2.问题描述 3.代码实现 1.效果展示 2.问题描述 当用户在输入框输入邮箱后.点击验证邮箱按钮.系统给出提示信息. 3.代码实现 <!DOCTYPE html> ...
- jQuery邮箱验证正则表达式验证邮箱合法
if($.trim(email)==''||$.trim(email)=='邮 箱:'||$.trim(email)==null){ alert('邮箱不能为空!'); return false ...
- java 正则表达式验证邮箱格式是否合规 以及 正则表达式元字符
package com.ykmimi.testtest; /** * 测试邮箱地址是否合规 * @author ukyor * */ public class EmailTest { public s ...
- java 正则表达式 验证邮箱
import java.util.regex.Matcher; import java.util.regex.Pattern; public class demo1 { /**java正则表达式 * ...
- javascript平时小例子②(正则表达式验证邮箱)
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>邮 ...
随机推荐
- Python property动态属性
from datetime import datetime, date class User: def __init__(self, name, birthday): self.name = name ...
- 【AGC035D】Add and Remove(脑洞 DP 分治)
题目链接 大意 给出\(N\)个数的序列,每次操作可以选择连续的三个数,将中间的那个数抽出,将另外两个数的数值加上中间那个数的数值. 一直执行以上操作直到只剩最后两个数,求最后两个数的所有可能的和的最 ...
- web测试学习大纲
Web测试 Web测试体系介绍 网络协议 Web开发 基础 原理 前端分析 安全性测试 可用性,兼容性 功能测试(同系统测试) 理解网络协议 互联网历史沿革 Web系统基础 Web核心技术 web服务 ...
- Solution -「多校联训」自动机
\(\mathcal{Description}\) Link. 有一个状态集为 \(V\) 的自动机,状态接收 (, ) 和 _(空格) 三种字符,分别编号为 \(0,1,2\),状态 \(u ...
- kubernetes之数据管理
volume emptyDir [machangwei@mcwk8s-master ~]$ kubectl apply -f mcwVolume1.yml #部署emptydir pod/produc ...
- v-model指令的学习
v-model的原理 v-model="message" ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓就相当于先用一个v-bind绑定一个 ...
- python2写ping监控,自动发现ip
玩了hostmonitor,老外写的很好.但是不符合国情,只有邮件适合发送. 今天用python 写一个自动发现ip,ping失败报警的程序.(微信和邮件报警) 以前用python写的发微信,发邮件直 ...
- jsp页面获取请求参数问题记录
同一个请求可以从请求路径中获取参数,使用param.参数名 window.location.href = "admin/page.html?pageNum="+pageNum+&q ...
- windows server2012 r2 .net framework 3.5失败
拿到手的虚拟机系统是Windows server 2012R2,本想着安装SQlserver2012轻轻松松,结果途中警告未安装.NET Framework 3.5.于是找了个.NET Framewo ...
- 金融BI是什么?为什么金融同行都在讨论这个!
最近,我和金融行业的几位朋友聚会,觥筹交错之间听到最多的竟然是「金融BI」这个词!这可触及到我的知识盲区了,到底什么是金融BI呢? 朋友向我解释:BI商业智能是一种提高企业智能化的手段和工具,既可以满 ...