无效字符的 C# 正则表达式

标签 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#

最佳答案

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 字符类。

关于无效字符的 C# 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23795046/

相关文章:

c# - C++/Java/C#图像处理库

c# - 转换没有时区的日期时间

c# - 在C#中处理大文本文件

javascript - 匹配打开和关闭的 html 标签的正则表达式

c# - Postgresql使用命令参数进行多行插入

html - 如何为 Objective-C 编写正则表达式?

java 正则表达式 : replace ${var}

objective-c - Xcode 验证错误 : non-public selectors

php - 检查正整数(PHP)的最佳方法?

validation - Sequelize 验证违规