为什么这个正则表达式不起作用?
Console.WriteLine(Regex.IsMatch(password, "(?!^[a-zA-Z]*$)"));
正如您所看到的那样,表达式包含负面向前看,所以基本上如果字符串以字母开头和结尾,它应该拒绝它。但无论我输入什么,我总是如此。为什么会这样?
答案 0 :(得分:5)
你的正则表达式什么都不匹配,后面没有纯字母数字字符串。所以每个输入都匹配。请记住,前瞻不是匹配的一部分 - 这只是一个条件。
使用此选项可以匹配所有不以字母数字开头或结尾的输入:
"^[^a-z](.*[^a-z])?$"