Regex.IsMatch在不应该的时候返回true

时间:2014-02-18 16:31:07

标签: c# .net regex

我有一个正则表达式模式,应该允许所有字母数字字符,-_.和空格

"[A-Za-z0-9-_. ]+"

我正在尝试使用Regex.IsMatch针对此正则表达式验证字符串,但它返回true。为什么呢?

string pattern = "[A-Za-z0-9-_. ]+";
string input = "rtgfd&**((&";
bool isMatch = Regex.IsMatch(input, pattern);
// isMatch is true, why?

1 个答案:

答案 0 :(得分:4)

匹配,因为您的字符串确实包含[A-Za-z0-9-_. ]集中的一个或多个字符。如果您只想 ,请将您的模式更改为:

string pattern = "^[A-Za-z0-9-_. ]+$";

它将强制模式从字符串的开头到结尾匹配。