输入验证的正则表达式问题

时间:2011-12-29 20:23:54

标签: c# regex

我有这个要求来检查给定用户输入中的字符,数字和少数特殊字符。输入可以具有A-Z,a-z,0-9,...,?和>。它不应该有任何其他特殊性质。

如果输入有一个,它应该停在那里并做一些其他工作人员。我试图写这样的正则表达式(如下)但它总是假的 - 我不知道我错过了什么:

string[] vals = allParams.Split(':');
Regex rgx = new Regex(@"^[a-zA-Z0-9?>.]$");
foreach (string value in vals)
{
    string result = rgx.IsMatch(value).ToString();
    if (result == "False")
        return;
}

1 个答案:

答案 0 :(得分:6)

正则表达式发布:

"^[a-zA-Z0-9?>.]$"

在字符串的开头和结尾之间匹配单个字符。

以下内容将搜索以下一个或多个字符:

"^[a-zA-Z0-9?>.]+$"

注意 - 关于你的bool的往返。这是一种更好的方法:

bool result = rgx.IsMatch(value);
if (!result)
    return;

或者,甚至更短:

if(!rgx.IsMatch(value))
   return;