我有这个要求来检查给定用户输入中的字符,数字和几个特殊字符.输入可以包含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)
正则表达式发布:
"^[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)