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

C# 拒绝密码中只有字符串的字符串,c#,regex,C#,Regex,为什么这个正则表达式不起作用 Console.WriteLine(Regex.IsMatch(password, "(?!^[a-zA-Z]*$)")); 正如您所看到的,表达式包含负前瞻,因此基本上,如果字符串以字母开头和结尾,它应该拒绝它。但无论我输入什么,我都会得到正确的答案。为什么会发生这种情况?正则表达式不匹配任何内容,后面不跟纯字母数字字符串。因此,每个输入都与此匹配。记住,前瞻不是匹配的一部分,它只是一个条件 使用此选项匹配所有不以字母数字开头或结尾的输入: "^[^a-z](.

为什么这个正则表达式不起作用

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

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

正则表达式不匹配任何内容,后面不跟纯字母数字字符串。因此,每个输入都与此匹配。记住,前瞻不是匹配的一部分,它只是一个条件

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

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

密码中只有字符串的字符串。。。什么?所以你想拒绝任何第一个和最后一个字符为字母的字符串,并接受所有其他字符?强制性密码安全链接:在任何情况下,你似乎对先行断言有错误的想法。你确定要对用户施加此限制吗?正确的马电池钉应该是一个合法的密码=