正则表达式校验字符串格式并指定必须包含某些字符

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

 

一、需求

要求长度为8-9位,开头是字母 ,必须有数字,必须有下划线

二、思路解析

写法1:^[a-zA-Z](?=.*_)(?=.*\d).{7,8}$

首先,开头是固定的,以字母开头,所以可以这样写 ^[a-zA-Z];

然后,要求必须要有数字和下划线,我们可以这些写 (?=.*_)(?=.*\d) ,这两句的目的分别是校验后面的字符串是否包含下划线和包含数字,是的话才匹配前面的开头字母;

于是,目前的正则是^[a-zA-Z] (?=.*_)(?=.*\d) ,

 

但对长度有限制8-9位,所以加上长度的限制^[a-zA-Z](?=.*_)(?=.*\d).{7,8}$

最终,完整的正则表达式就是:

^[a-zA-Z](?=.*_)(?=.*\d).{7,8}$

写法2:(?=.*\d)(?=.*_)^[a-zA-Z].{7,8}$

这个写法是先匹配整个字符串是否包含数字和下划线(?=.*\d)(?=.*_)

有的话,才执行后面的匹配^[a-zA-Z].{7,8}$

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值