正则表达式具有特殊字符的逻辑

时间:2013-03-31 10:57:07

标签: c# .net regex special-characters

我知道这句话应该按预期返回

Regex.IsMatch("+", @"[a-zA-Z0-9]")

但是为什么这些陈述匹配,尽管它们不应该(根据我的理解)

Regex.IsMatch("C++", @"[a-zA-Z0-9]")
Regex.IsMatch("C++", @"[a-zA-Z0-9]+")

1 个答案:

答案 0 :(得分:4)

这些是匹配,因为您不匹配整个字符串。它们将匹配C中的C++

使用^$匹配字符串的开头和结尾:

bool onlyAlphaNumeric = Regex.IsMatch("C++", @"^[a-zA-Z0-9]+$"); // will be false