C#正则表达无效字符

时间:2014-05-21 22:40:04

标签: 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);

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

1 个答案:

答案 0 :(得分:6)

string pattern = @"[^a-z A-Z 0-9._-]$";

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

您可能需要以下内容:

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

您也可以查看\w字符类。