拒绝密码中只有字符串的字符串

本文关键字:字符串 密码 拒绝 | 更新日期: 2023-09-27 18:06:19

为什么这个正则表达式不工作?

Console.WriteLine(Regex.IsMatch(password, "(?!^[a-zA-Z]*$)"));

正如你所看到的表达式包含负的向前看,所以基本上,如果字符串以字母开头和结尾,它应该拒绝它。但无论输入什么,结果都是正确的。为什么会发生这种情况?

拒绝密码中只有字符串的字符串

您的regex不匹配任何内容,它后面没有一个纯字母数字字符串。所以每个输入都匹配这个。请记住,前瞻性不是匹配内容的一部分——它只是一个条件。

使用此参数匹配所有不以字母数字开头或结尾的输入:

"^[^a-z](.*[^a-z])?$"