C# 复杂密码的正则表达式

C# 复杂密码的正则表达式,c#,regex,C#,Regex,关于如何使用c#来生成正则表达式以满足要求,这个问题显然已经被问了很多次。我需要一个能 长度至少为8个字符 至少1个大写字符 1号 1个特殊字符!@$%^&*() 密码与登录名不同(易于检查) 不包含超过2个重复出现的字符,例如aaa123 为了自己解决这个问题,我想寻找如何一个接一个地满足这些要求,并在我前进的过程中构建正则表达式。这是正确的方法吗 我觉得我可能错过了什么。我正在阅读有关正则表达式以及如何创建复杂表达式的内容。非常需要你的反馈 谢谢。我想你可以像这样使用Regex: ^(?

关于如何使用c#来生成正则表达式以满足要求,这个问题显然已经被问了很多次。我需要一个能

  • 长度至少为8个字符
  • 至少1个大写字符
  • 1号
  • 1个特殊字符!@$%^&*()
  • 密码与登录名不同(易于检查)
  • 不包含超过2个重复出现的字符,例如aaa123
为了自己解决这个问题,我想寻找如何一个接一个地满足这些要求,并在我前进的过程中构建正则表达式。这是正确的方法吗

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


谢谢。

我想你可以像这样使用
Regex

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

^                         // 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

@Tushar我认为OP的问题在于代码与这个额外部分的结合不包含超过2个重复出现的字符,例如aaa123;)。无论如何,这个问题是已经存在的问题的完全重复。它应该被关闭。@0x49D1正则表达式太不可读了-OP不需要包含超过2个重复字符,而需要确保字符串有三个小写字母;)。无论如何,这不符合OP的要求-1个数字,即使没有重复,OP自己仍然没有表现出任何努力。