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