我正在使用票价库 https://github.com/moodmosaic/Fare/从正则表达式生成随机字符串。到目前为止,它一直正常工作。
我现在想要的是"密码必须至少/最多包含 8 个字符,包括一个特殊字符、至少 1 位数字和至少大写字母。"允许的特殊字符是 !#$%^&*((=,。
为此,我创建了表达式
^((?=.d)(?=.[A-Z])(?=.*W).{8,8})$
但它没有生成有效的表达式请检查问题所在
我正在生成正则表达式:
var secret = new Xeger(ConfigurationManager.AppSettings["expression"]).Generate();
Console.WriteLine(secret);
我已经更新了模式要求
如果 Fare 不支持前瞻,那么您可以尝试使用没有任何此类前瞻的其他正则表达式:
^([0-9](([A-Z](([!@#%*(($?+-](([a-zA-Z0-9]{5}($
因此,此正则表达式可用于验证密码,但随后我们将限制用户首先输入一个数字,第二个大写字母,第三个输入特殊字符,其余部分是字母数字字符的混合。