我编写了以下正则表达式来从html中删除viewstate隐藏字段
Regex.Replace(html, "<input[^>]*id=\"__VIEWSTATE\"[^>]*>", string.Empty, RegexOptions.IgnoreCase);
如何将其修改为在正则表达式中包含__EVENTTARGET,__ EVENTARGUMENT,__ EVENTVALIDATION?
答案 0 :(得分:1)
Regex.Replace(html, "<input[^>]*id=\"(__VIEWSTATE|__EVENTTARGET|__EVENTARGUMENT|__EVENTVALIDATION)\"[^>]*>", string.Empty, RegexOptions.IgnoreCase);
易于理解和扩展。
答案 1 :(得分:0)
您可以将所有项目添加到列表中,然后像这样迭代它们:
var items = new List { "__VIEWSTATE", "__EVENTTARGET", "__EVENTARGUMENT", "__EVENTVALIDATION" };
foreach (item in items) {
Regex.Replace(html, string.format("<input[^>]*id=\"{0}\"[^>]*>", item), string.Empty, RegexOptions.IgnoreCase);
}
如果我在代码中遇到此代码,而不是OR'd语句的集合,我发现此代码更容易理解。
答案 2 :(得分:0)
"<input[^>]*id=\"__(?:VIEWSTATE|(?:EVENT(?:TARGET|ARGUMENT|VALIDATION)))\"[^>]*>"