正则表达式删除隐藏的字段

时间:2011-01-15 00:37:46

标签: .net regex

我编写了以下正则表达式来从html中删除viewstate隐藏字段

Regex.Replace(html, "<input[^>]*id=\"__VIEWSTATE\"[^>]*>", string.Empty, RegexOptions.IgnoreCase);

如何将其修改为在正则表达式中包含__EVENTTARGET,__ EVENTARGUMENT,__ EVENTVALIDATION?

3 个答案:

答案 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)))\"[^>]*>"