拒绝只包含密码字符串的字符串

时间:2011-08-23 07:36:34

标签: c# regex

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

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

正如您所看到的那样,表达式包含负面向前看,所以基本上如果字符串以字母开头和结尾,它应该拒绝它。但无论我输入什么,我总是如此。为什么会这样?

1 个答案:

答案 0 :(得分:5)

你的正则表达式什么都不匹配,后面没有纯字母数字字符串。所以每个输入都匹配。请记住,前瞻不是匹配的一部分 - 这只是一个条件。

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

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