正则表达式前瞻(?=)、后顾(?<=)、负前瞻(?!)、负后顾(?<!)

前瞻(?=)

exp1(?=exp2) 查找后面是exp2的exp1

正则表达式字符串匹配结果
abc(?=123)abc123abc
abc(?=123)kabc1234abc
abc(?=123)abc12不匹配
abc(?=123)abcc123不匹配

注意:(?=)表示的就是结尾了,不要和$混用。如^abc(?=123)$无法匹配abc123, ^abc(?=123)可以匹配abc123

负前瞻(?!)

exp1(?!exp2) 查找后面不是exp2的exp1

正则表达式字符串匹配结果
abc(?!123)abc123不匹配
abc(?!123)abc1233不匹配
abc(?!123)abc12abc
abc(?!123)abcc123abc

后顾(?<=)

(?<=exp2)exp1 查找前面是exp2的exp1

正则表达式字符串匹配结果
(?<=abc)123abc123123
(?<=abc)123kabc1234123
(?<=abc)123abc12不匹配
(?<=abc)123abcc123不匹配

负后顾(?<!)

(?<!exp2)exp1 查找前面不是exp2的exp1

正则表达式字符串匹配结果
(?<!abc)123abc123不匹配
(?<!abc)123kabc1234不匹配
(?<!abc)123ab1234123
(?<!abc)123abcc123123

例子:密码规则正则表达式,必须包含字母+数字+特殊字符(这里特殊字符为!@#$),长度为8-16位

^(?=.*\d)(?=.*[a-zA-Z])(?=.*[!@#$])[\da-zA-Z!@#$]{8,16}$
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值