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

use*_*068 4 c# regex

我有这个要求来检查给定用户输入中的字符,数字和几个特殊字符.输入可以包含AZ,az,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;
}
Run Code Online (Sandbox Code Playgroud)

Ode*_*ded 6

正则表达式发布:

"^[a-zA-Z0-9?>.]$"
Run Code Online (Sandbox Code Playgroud)

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

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

"^[a-zA-Z0-9?>.]+$"
Run Code Online (Sandbox Code Playgroud)

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

bool result = rgx.IsMatch(value);
if (!result)
    return;
Run Code Online (Sandbox Code Playgroud)

或者,甚至更短:

if(!rgx.IsMatch(value))
   return;
Run Code Online (Sandbox Code Playgroud)