关于c#:Regex的复杂密码

Regex for complex password

本问题已经有最佳答案,请猛点这里访问。

很明显,关于如何使用C生成regex以满足要求的问题已经被问了很多次。我需要一个雷杰克斯……

  • 至少8个字符长
  • 至少1个大写字符
  • 1号
  • 1个特殊角色!@ $$%^和(*)
  • 密码与登录名不同(易于检查)
  • 不包含超过2个重复出现的字符,例如aaa123

为了自己解决这个问题,我在考虑如何逐个完成这些需求中的每一个,并在我进行的过程中构建regex。这是正确的方法吗?

我觉得我可能错过了什么。我正在阅读有关regex表达式以及如何创建复杂表达式的内容。你的反馈非常需要。

谢谢。


我想你可以用这样的一个Regex

1
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[!@#$%^&*()])(?!.*userName)(?!.*(.)\1{2,}).{8,}$

说明:

1
2
3
4
5
6
7
8
9
^                         // from start
 (?=.*[a-z])              // has at least one lower case character
 (?=.*[A-Z])              // has at least one upper case character
 (?=.*\d)                 // has at least one digit
 (?=.*[!@#$%^&*()])       // has at least one special character
 (?!.*userName)           // has not userName => set it by a variable
 (?!.*(.)\1{2,})          // has not an repeated character more than twice
 .{8,}                    // has a length of 8 and more
$                         //to the end