我有这个要求来检查给定用户输入中的字符,数字和少数特殊字符。输入可以具有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;
}
答案 0 :(得分:6)
正则表达式发布:
"^[a-zA-Z0-9?>.]$"
在字符串的开头和结尾之间匹配单个字符。
以下内容将搜索以下一个或多个字符:
"^[a-zA-Z0-9?>.]+$"
注意 - 关于你的bool的往返。这是一种更好的方法:
bool result = rgx.IsMatch(value);
if (!result)
return;
或者,甚至更短:
if(!rgx.IsMatch(value))
return;