我的代码中有一个正则表达式来匹配表单 POST 中的键(控制 ClientId)。我循环遍历表单数据中的所有键,并在找到匹配项时执行所需的操作。
但是正则表达式匹配的次数超出了我的需要。这会在每个请求上运行,如果执行不必要的代码就会触发。
Match match = Regex.Match(key.ToLower(), @"(?!\$)(?:[a-z0-9]+)$",
RegexOptions.Compiled);
完全匹配的样本字符串
master$maincontentplaceholder$ucsearchresults$hdnvalue
master$maincontentplaceholder$ucsearchresults$hdnvalue2
master$maincontentplaceholder$ucsearchresults$hdnvalue3
然后我有一个 switch 语句,其中的 case 与控件 id 匹配
case: "hdnvalue"
case: "hdnvalue2"
case: "hdnvalue3"
该表单还返回大量并不总是需要处理的额外键。如果我可以将这些排除在正则表达式中,那就太好了。 (注意额外的客户端 id 级别 $ucfilter
)
master$maincontentplaceholder$ucsearchresults$ucfilter$hdnvalue
master$maincontentplaceholder$ucsearchresults$ucfilter$hdnvalue2
master$maincontentplaceholder$ucsearchresults$ucfilter$hdnvalue3
最佳答案
您必须描述更正式接受的格式,此正则表达式将通过您提供的标准:
^([a-z0-9]+\$){3}[a-z0-9]+$
关于c# - ClientId 中的正则表达式匹配 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9114013/