c# - ClientId 中的正则表达式匹配 ID

标签 c# regex

我的代码中有一个正则表达式来匹配表单 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/

相关文章:

Java正则表达式从字符串中获取数字

java - 另一个 Java RegEx 问题

regex - Notepad++ 替换正则表达式匹配相同的文本加上附加字符

java - 如何使用Java的正则表达式来分割嵌套的数学方程

c# - 如何在 DataTemplate 的 DataType 属性中引用泛型类型?

C#:SkipLast 实现

c# - System.IO.FileSystemWatcher.CompletionStatusChanged 处的 System.ArgumentOutOfRangeException

c# - Math.Pow 计算不正确

regex - 如何使用非拉丁词的正则表达式定义促销?

c# - 从 C# 中存储为字符串的两个数字中找出较大的数字