Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.NET正则表达式-块';%';_.net_Regex - Fatal编程技术网

.NET正则表达式-块';%';

.NET正则表达式-块';%';,.net,regex,.net,Regex,我试图阻止用户在.NET程序的HTML表单中输入“%”或多个“%”。已尝试模式(?!.%*),但它不起作用。正则表达式应该允许字符串中使用“%”,但在仅使用“%”时会引发错误。我不是正则表达式专家,但这似乎对我有用: bool IsInputValid(string input) { return !Regex.IsMatch(input,"^[%]+$"); } 举个例子: Debug.WriteLine(IsInputValid("%")); // False Debug.Writ

我试图阻止用户在.NET程序的HTML表单中输入“%”或多个“%”。已尝试模式
(?!.%*)
,但它不起作用。正则表达式应该允许字符串中使用“%”,但在仅使用“%”时会引发错误。

我不是正则表达式专家,但这似乎对我有用:

bool IsInputValid(string input)
{
    return !Regex.IsMatch(input,"^[%]+$");
}
举个例子:

Debug.WriteLine(IsInputValid("%")); // False
Debug.WriteLine(IsInputValid("%%")); // False
Debug.WriteLine(IsInputValid("fsd%lkf")); // True
Debug.WriteLine(IsInputValid("%fslk")); // True

谢谢大家的意见。我尝试了你答案中的几种组合,最后得出了([^%])(.*)$ 它非常接近(仍然%%xxx被标记为无效)。
但这对我现在起作用了。

%-无效,%-无效,fsd%lkf-有效,%fslk有效