java 正则首位8或者9的8位数字_正则简单手机号和邮箱练习

正则表达式的组成规则

在java中,正则表达式的编译是类

java.util.regex.Pattern

7e7924e565b5eacbb86f88f4505e1cce.png

正则表达式的构造摘要

1.字符x

包括所有大写和小写字母、所有数字、所有标点符号和一些其他符号的普通字符。

比如之前的例子

2517a3cb1af1be7c83e9844870706c03.png

可以将[1-9][0-9]{4,12}改成

1[0-9]{4,12}或者a[0-9]{4,12}

此时就表示以1开始或者以a开始的字符,就表示一个任意的普通字符。

3630e0fd1c5dd7cbc5172a1abc790d59.png

2. 反斜线字符

表示一个反斜线,更改下之前的代码

ae76460b61a6dd9da796b706df9a4eb0.png

3、[abc] a,b或者c(简单类),任选一个,只能在abc中

f0af1bd3b27e6a66efea085db9bca759.png

4、[^abc] 任何字符,除了a,b,c(否定),不是abc的任意字符

4a5d73c063409e62415a0d0563140a74.png

5.[a-zA-Z] a 到 z 或 A 到 Z,两头的字母包括在内(范围)

12edaf813017cf20e1894a1d4d07ad5a.png

6. d 数字:[0-9]

D 非数字: [^0-9]相对于d是取反,不是数字的就可以

90486df3826a45439449ae11a30ca925.png

7. w 单词字符:[a-zA-Z_0-9]匹配字母或数字或下划线或汉字,W是取反:[^w]

64a7ed3a4b3a6c9abdc93fd554228565.png

上面这些有助于我们理解正则表达式,建立概念,实际上正则有很多构造,需要可以百度搜索,现在我们多做些练习,补充理解学习。

练习:判断手机号是否满足需求

准备手机号例子:

18372345676

18372345673

18372345672

18372345671

13469830000

15926943333

18727244444

13901657081

规则:

1. 首位是1

2. 第二位是[358]

3. 后续数字 表示数字:[0-9]

X{n} X,表示恰好 n 次,后续位数为9位,所以X是[0-9],n是9,结合起来是[0-9]{9}

那么正则就是1[358][0-9]{9}

编写代码

ceb8536445c481a5e3258362887e8869.png
f173b8aebbd054c49af227b24baa2ac8.png

运行结果

af8d2115b8f7ac18cfbe6f25367dc18b.png

练习:邮箱判断

下面邮箱例子(实际邮箱正则很复杂):

1233213123@qq.com

zoushdiasd@163.com

heis_321@126.com

guaojpod@sina.com.cn

daioyasodi@tencent.cn

规则:

1.以@符合分为三个部分

2. @以前的部分:w{8,10}

3.@

此时的正则是: w{8,10}@

4. @后面的部分可以依据.(点)进行划分

5. .以前的部分[a-z1-9]{2,7}

6. .本身表示任何字符,所以需要转义.

此时的正则是: w{8,10}@[a-z1-9]{2,7}.

7. .后面的部分可以暂时表示宽泛一些[a-z]{2,3}

此时的正则是: w{8,10}@[a-z1-9]{2,7}.[a-z]{2,3}

8. 多个com和cn可以将点及后面的部分一起,看做一个整体(.[a-z]{2,3}){1,2}

此时的正则是:

w{8,10}@[a-z1-9]{2,7}(.[a-z]{2,3}){1,2}

编写代码

21ad3047cbfbefc862a2c00eddbf47ad.png

结果

c2a122eda57cd0f7e5f1310e7ab0c7c2.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/567342.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

inputstreamreader 编码不完整_素材编码对剪辑效率的影响

这次说说在项目的剪辑阶段关于编码的一些注意事项。压缩编码会拖慢剪辑速度大多数中低端摄像机都使用其于时间压缩的编码来进行录制,也称为Long GOP压缩。这种编码对于缩小文件体积很有用,但是计算机不得不耗费更多的性能来进行剪辑。简单来讲&#xff0…

python定义三维数组不指定长度_插值/调整三维数组大小

ndimage.zoom 这可能是最好的方法,zoom method正是为这类任务而设计的。from scipy.ndimage import zoom new_array zoom(array, (0.5, 0.5, 2)) 按指定的因子更改每个维度中的大小。如果数组的原始形状是(40, 50, 60),那么新的数组将是(20, 25, 120)。…

django默认缓存是多大_Django之缓存 - osc_fd8vzgsi的个人空间 - OSCHINA - 中文开源技术交流社区...

一、缓存由于Django是动态网站,所有每次请求均会去数据进行相应的操作,当程序访问量大时,耗时必然会更加明显,最简单解决方式是使用:缓存,缓存将一个某个views的返回值保存至内存或者memcache中&#xff0c…

mac xampp连接mysql数据库_请问在mac下xampp无法读取mysql的数据

报错信息如下:Fatal error: Uncaught Error: Call to undefined function mysql_connect() in /Applications/XAMPP/xamppfiles/htdocs/test/db.class.php:51 Stack trace: #0 /Applications/XAMPP/xamppfiles/htdocs/test/db.class.php(31): ms_new_mysql->conn…

python调用shell脚本的参数_使用python执行shell脚本 并动态传参 及subprocess的使用详解

最近工作需求中 有遇到这个情况 在web端获取配置文件内容 及 往shell 脚本中动态传入参数执行shell脚本这个有多种方法 最后还是选择了subprocess这个python标准库subprocess这个模块可以非常方便的启动一个子进程,并且控制其输入和输出Class Popen(args&#xff0c…

mysql replication延迟_深入mysql主从复制延迟问题的详解

面试mysqldba的时候遇到一个题:描述msyql replication 机制的实现原理,如何在不停掉mysql主库的情况下,恢复数据不一致的slave的数据库节点?MySQL的复制(replication)是一个异步的复制,从一个MySQL instace(称之为Mast…

gitlab 安装gitlabrunner 无法连接tiller_谈一谈GitLab Runner是个什么东东?

概念我从官网搜了一下,GitLab Runner 是一个开源项目, 它用来运行你定制的任务(jobs)并把结果返回给 GitLab。 GitLab Runner 配合GitLab CI(GitLab 内置的持续集成服务) 协调完成任务。gitlab想要了解 GitLab Runner之前,我们先要知道或者说…

mysql百万级去重_mysql优化小技巧之去除重复项(百万级数据)

mysql优化小技巧之去除重复项(百万级数据)发布时间:2018-06-11 11:54,浏览次数:482, 标签:mysql说到这个去重,脑仁不禁得一疼,尤其是出具量比较大的时候。毕竟咱不是专业的DB,所以嘞,只能自己弄…

高中必背88个数学公式_高中数学:必修+选修全部知识点精华!附高考必背203个公式...

童鞋们好呀,2021高考将至,但是很多高三同学还是处于一个很不好的状态感觉每一科都很紧张,学校学习的节奏快,自己基础又没跟上,还要补基础总觉得后一步还没跟上,就要迈下一步了,不知道从哪学&…

mysql获取逻辑日志_Mysql 逻辑架构图及日志系统

1、Mysql逻辑架构图场景一:一条SQL语句如何执行?如图显示一条SQL语句的执行过程:执行器的执行流程:2、Mysql日志系统说到日志系统,需要了解几个概念:creash-safe、redo log、binlog、WAL技术。Redo log用于…

专科学python真的不好_专科生转行做python运维靠谱吗?

看了下问题,专科做运维,的确在找工作的时候没有优势,but,这并不代表运维行业对学历要求高,而是你找别的工作,专科也没有什么优势。知乎水平动辄985,专科就显得那么的微不足道。但没有竞争力不太表找不到相关…

mysql实例详解_MySQL 多实例详解

MySQL多实例配置方法1、单一配置文件2、多配置文件。二、实战步骤:1、同步时间2、准备mysql依赖包3、环境准备3.1添加mysql用户3.2编译安装mysql4、安装MySQL多实例5、准备配置文件6、启动MySQL7、登录mysql与一些安全措施8、关闭MySQL9,、提供简易管理脚本10、为my…

如何提高go代码覆盖率_如何通过静态分析提高iOS代码质量

随着项目的扩大,依靠人工codereview来保证项目的质量,越来越不现实,这时就有必要借助于一种自动化的代码审查工具:程序静态分析。程序静态分析(Program Static Analysis)是指在不运行代码的方式下,通过词法分析、语法分…

mysql 查看表是否存在_MySQL优化篇二

单表优化最佳左前缀原则为,保持索引的定义和使用顺序的一致性将含In的范围查询,放到where条件语句的最后。索引需要逐步优化两表优化小表驱动大表避免索引失效的一些原则:复合索引,不要跨列或无序使用(最佳左前缀&…

centos下mysql 命令_CentOS下mysql数据库常用命令总结

### 1.更改root密码mysqladmin -uroot password yourpassword### 2.远程登陆mysql服务器mysql -uroot -p -h192.168.137.10 -P3306### 3.查询数据库show databases;### 4.进入某个数据库use databasename;### 5.列出数据库中的表show tables;### 6.查看某个表全部字段desc slow…

java http请求_如何设置Fiddler来拦截Java代码发送HTTP请求,进行各种问题排查

我们使用Java的RestTemplate或者Apache的HTTPClient编程的时候,经常遇到需要跟踪Java代码发送的HTTP请求明细的情况。和javascript代码在浏览器里发送请求可以通过Chrome开发者工具方便地跟踪一样,对于Java代码发送的网络请求,我们也可以使用…

mysql自增id用完了_MySQL 自增 ID 用完了怎么办?

MySQL 自增 ID 用完了怎么办?在MySQL中有很多类型的自增ID,每个自增ID都设置了初始值,然后按照一定的步长增加,只要定义了字节长度,那么就会有上限,如果达到上限再次添加,则会报主键冲突错误&am…

第十篇学会编写python代码_Python之路,第十篇:Python入门与基础10

python3 函数函数(function)什么是函数:函数是可以重复执行的代码块,可以重复使用;作用: 定义用户级的函数;实现了一个代码块的封装;语法:def 函数名(参数列表):语句块(代码块)...…

python报错怎么看_python中的错误如何查看

python常见的错误有1.NameError变量名错误2.IndentationError代码缩进错误3.AttributeError对象属性错误4.TypeError类型错误5.IOError输入输出错误6.KeyError字典键值错误具体介绍1.NameError变量名错误报错:>>> print aTraceback (most recent call last…

http通道连接mysql_通过http tunnel连接mysql

在/etc/nginx/nginx.conf的第一行加上load_module /usr/lib64/nginx/modules/ngx_http_proxy_connect_module.so;nginx -s reload> nginx: [emerg] dlopen() "/usr/lib64/nginx/modules/ngx_http_proxy_connect_module.so" failed (/usr/lib64/nginx/modules/ngx_…