正则表达式环视的应用-密码必须6-16位并且必须含有大写,小写,数字

正则表达式之环视(Look Around)

环视只进行子表达式的匹配,匹配内容不计入最终的匹配结果。

环视按照方向划分有顺序和逆序两种,按照是否匹配有肯定和否定两种,组合起来就有四种环视。环视相当于对所在位置加了一个附加条件。

  1. (?<=Expression) 逆序肯定环视,表示所在位置左侧能够匹配Expression
  2. (?<!Expression) 逆序否定环视,表示所在位置左侧不能匹配Expression
  3. (?=Expression) 顺序肯定环视,表示所在位置右侧能够匹配Expression
  4. (?!Expression) 顺序否定环视,表示所在位置右侧不能匹配Expression

  例如:“(?<=abc )\d+”在匹配“abc 123”时,匹配结果为“123”。“\d+”表示匹配一个以上的数字,而“(?<=abc )”相当于一个附加条件,表示所在位置左侧必须为“abc ”,它所匹配的内容并不计入匹配结果。同样的正则在匹配“acc 123”时,匹配失败,因为这里任意一串数字子串的左侧都不是“abc ”。

  这里说一下个人遇到的问题:需匹配以指定规则开头、不以指定规则结尾的字符串。如匹配以数字开头不以’abc’结尾的字符串:正则为^[0-9]+.*(?<!abc)$。
另一个使用最多的正则就是校验密码:必须要包含数字和大小写字母的6-16位密码,使用环视就很简单。^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z])[0-9a-zA-Z]{6,16}$

  • ^开始标记
  • (?=.*\\d) 保证字符串包含一个数字
  • (?=.*[a-z]) 保证字符串一个小写字母
  • (?=.*[A-Z]) 保证字符串包含一个大写字母
  • [0-9a-zA-Z]{6,16} 保证字符串长度为6-16
  • $结束标记
转自 http://www.zhouhaocheng.cn/2015/181.html
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值