正则表达式与ClientId中的ID匹配
本文关键字:ID 匹配 中的 ClientId 正则表达式 | 更新日期: 2023-09-27 18:22:10
我的代码中有一个正则表达式,用于匹配表单POST中的键(控制ClientId)。我循环使用表单数据中的所有键,并在找到匹配项时执行所需的操作。
然而,regex匹配的次数比我需要的要多。这会在每个请求上运行,如果执行了不必要的代码,就会触发。
Match match = Regex.Match(key.ToLower(), @"(?!'$)(?:[a-z0-9]+)$",
RegexOptions.Compiled);
与完全匹配的样本字符串
master$maincontentplaceholder$ucsearchresults$hdnvalue
master$maincontentplaceholder$ucsearchresults$hdnvalue2
master$maincontentplaceholder$ucsearchresults$hdnvalue3
然后,我有一个与控制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]+$
如果您不/必须/使用regex,您可能会使用LastIndexOf("$")做得更好
using System;
namespace ConsoleApplication3
{
class Program
{
static void Main(string[] args)
{
string text = "master$maincontentplaceholder$ucsearchresults$ucfilter$hdnvalue";
string id = text.Substring(text.LastIndexOf("$") + 1);
Console.WriteLine(id);
Console.ReadLine();
}
}
}