我已经通过多个示例通过正则表达式验证密码,但它们都不适合我想要的。我一直在使用反复试验来构建自己的,但没有取得圆满成功。
这是正则表达式,到目前为止最接近我正在寻找的内容:
(?=.*?[a-z]{3,})(?=.*?[A-Z]{3,})(?=.*?[0-9]{2,})[a-zA-Z0-9]{8,24}
密码应该有三个小写字母和三个大写字母和两个数字。密码长度应介于8到24个字符之间。不寻找特殊字符,只要满足其他要求,就可以使用它们。
上面的正则表达式与ABCdef12
匹配,但与Ad1Be1Cf
不匹配。我应该如何修改正则表达式,以便它也匹配后一个例子?
答案 0 :(得分:1)
(?=.{8,24}$)(?=.*?[a-z].*?[a-z].*?[a-z])(?=.*?[A-Z].*?[A-Z].*?[A-Z])(?=.*?\d.*?\d)(^.*$)
你可以使用它。它使用先行来测试所有条件。
参见演示。
答案 1 :(得分:1)
使用预览内容断言,以及长度的简单正则表达式:
^(?=(.*[a-z]){3})(?=(.*[A-Z]){3})(?=(.*\d){2}).{8,24}$
请参阅demo
我有理由相信这是适合你的最短正则表达式。