条件:密码必须至少有 8 个字符,并结合使用以下至少 2 个字符:大小写字母、数字和特殊字符。
哪种模式可以符合条件?
正则表达式是完全错误的方法。取而代之的是简单地计算每种字符类型的出现次数,然后简单地使用 if 语句和布尔逻辑来检查您的要求是否得到满足。
但是,请重新考虑您想要做的是否是一个好主意:
因此,更好的密码策略将:
IT Security Stack Exchange 网站上还有一篇有趣的文章,您应该阅读:短复杂密码,还是长字典密码?
string PASSWORD_PATTERN = "((?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%]).{8,20})";
string password = "Password@1#";
Regex.IsMatch(password,PASSWORD_PATTERN);
尝试这个。