RegEx用于验证密码

时间:2016-11-23 06:54:22

标签: c# regex

我要求使用正则表达式验证密码 以下是验证标准

密码应包含4种类型中的任何3种:

  1. 小写字母(a,b,c,d,.......,y,z)
  2. 大写字母(A,B,C,D,......,Y,Z)
  3. 数字(0,1,2,3,4,5,6,7,8,9)
  4. 特殊字符($,&,%,!,#,@)“
  5. 我已经提出了以下正则表达式,但问题是它只能验证前9个字符并允许任何字符后的单词

    ^(?=.{9,})((?=.*\d)(?=.*[a-z])(?=.*[A-Z])|(?=.*\d)(?=.*[a-z])(?=.*[!@#$%&])|(?=.*\d)(?=.*[A-Z])(?=.*[!@#$%&])|(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%&])).*$
    
    编辑:我已经遇到了类似的问题,但我的问题不同,因为它预计会满足4个标准中的3个并且只有有限的字符集。

    任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:1)

替换你的最终“由字符组成”检查

.*$

检查“仅由允许的字符构成”

[A-Za-z0-9$&%!#@]*$

前者允许您使用任何您想要的角色,只要满足其他规则;后者确保输入中的每个字符都是允许的字符之一。

答案 1 :(得分:-1)

这是一个奇怪的密码正则表达式检查要求......

(^[a-zA-Z0-9]+$)|(^[a-z0-9!@#$%&]+$)|(^[A-Z0-9!@#$%&]+$)|(^[a-zA-Z!@#$%&]+$)

4选择3有4种可能性。这里有4个捕获组。我想你可以弄清楚它在做什么......