另一个验证正则表达式的密码

时间:2014-08-27 08:38:16

标签: regex

我已经通过多个示例通过正则表达式验证密码,但它们都不适合我想要的。我一直在使用反复试验来构建自己的,但没有取得圆满成功。

这是正则表达式,到目前为止最接近我正在寻找的内容:

(?=.*?[a-z]{3,})(?=.*?[A-Z]{3,})(?=.*?[0-9]{2,})[a-zA-Z0-9]{8,24}

密码应该有三个小写字母和三个大写字母和两个数字。密码长度应介于8到24个字符之间。不寻找特殊字符,只要满足其他要求,就可以使用它们。

上面的正则表达式与ABCdef12匹配,但与Ad1Be1Cf不匹配。我应该如何修改正则表达式,以便它也匹配后一个例子?

2 个答案:

答案 0 :(得分:1)

  (?=.{8,24}$)(?=.*?[a-z].*?[a-z].*?[a-z])(?=.*?[A-Z].*?[A-Z].*?[A-Z])(?=.*?\d.*?\d)(^.*$)

你可以使用它。它使用先行来测试所有条件。

参见演示。

http://regex101.com/r/yX3eB5/9

答案 1 :(得分:1)

使用预览内容断言,以及长度的简单正则表达式:

^(?=(.*[a-z]){3})(?=(.*[A-Z]){3})(?=(.*\d){2}).{8,24}$

请参阅demo

我有理由相信这是适合你的最短正则表达式。