C#正则表达无效字符

WPF*_*FKK 1 c# regex validation

嗨我有一个要求验证一个只接受字母数字的输入, - ,_要测试这个我使用下面的代码

 string pattern = @"[^a-z A-Z 0-9._-]$";
        var matches = Regex.Matches(m_ModelName.Value, pattern, RegexOptions.IgnoreCase);
        return (matches.Count > 0);
Run Code Online (Sandbox Code Playgroud)

如果计数> 0则表示存在无效字符.但它永远不会按照我的期望回归.请告诉我我做错了什么.这是严格的c#

End*_*rju 6

string pattern = @"[^a-z A-Z 0-9._-]$";
Run Code Online (Sandbox Code Playgroud)

这个正则表达式只匹配字符串中的最后一个字符(因为$ anchor).

你可能想要这样的东西:

 string pattern = @"^[a-zA-Z0-9._-]+$";
 return Regex.IsMatch(m_ModelName.Value, pattern, RegexOptions.IgnoreCase);
Run Code Online (Sandbox Code Playgroud)

你也可以看一下\w角色类.