c# – 与任何数字或字母或短划线匹配的正则表达式

鉴于searchString =“23423asdfa-””

这个正则表达式应该评估为false,但它不会!有任何想法吗?

Regex rgx = new Regex(@"[\w-]*");
rgx.IsMatch(searchString)
最佳答案
这是因为你没有约束它以匹配整个字符串.因此,允许考虑字符串子集的匹配.字符串的一个非常大的子集匹配数据,因此正则表达式返回true.

请尝试以下操作以强制它匹配整个输入.

Regex rgx = new Regex(@"^[\w-]*$");
rgx.IsMatch(searchString)

转载注明原文:c# – 与任何数字或字母或短划线匹配的正则表达式 - 代码日志