Regex for complex password
本问题已经有最佳答案,请猛点这里访问。
很明显,关于如何使用C生成regex以满足要求的问题已经被问了很多次。我需要一个雷杰克斯……
- 至少8个字符长
- 至少1个大写字符
- 1号
- 1个特殊角色!@ $$%^和(*)
- 密码与登录名不同(易于检查)
- 不包含超过2个重复出现的字符,例如aaa123
为了自己解决这个问题,我在考虑如何逐个完成这些需求中的每一个,并在我进行的过程中构建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 |