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

Ari*_*911 5 .net c# regex

特定 searchString = "23423asdfa-''"

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

Regex rgx = new Regex(@"[\w-]*");
rgx.IsMatch(searchString)
Run Code Online (Sandbox Code Playgroud)

Jar*_*Par 9

这是因为你没有约束它来匹配整个字符串.因此,允许考虑字符串子集的匹配.字符串的一个非常大的子集匹配数据,因此正则表达式返回true.

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

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