在论坛里面找了类似的正则表达式,能够获取name和value:
MatchCollection mc = Regex.Matches(html, @"(?is)<input.*?(?:name[^=]*=.*?(['""]?)(?<name>[^'"" ]*)\1|value[^=]*=.*?(['""]?)(?<value>[^'""]*?)\2| |.)+?>");
foreach (Match m in mc)
{
Console.WriteLine("name is : " + m.Groups["name"].Value);
Console.WriteLine("value is : " + m.Groups["value"].Value);
}
现在如果我要同时获取id、name、和type属性应该怎么改呢?
同时也要注意id、name、type的顺序问题,以及页面上也有一些select下拉框,如果是select下拉框就只获取id和name。
------解决方案--------------------------------------------------------
- C# code
string html = @"<input id='ss' type='hidden' value='2'/>"; MatchCollection mc = Regex.Matches(html, @"(?is)<input.*?(?:name[^=]*=.*?(['""]?)(?<name>[^'"" ]*)\1|value[^=]*=.*?(['""]?)(?<value>[^'""]*?)\2|type[^=]*=.*?(['""]?)(?<type>[^'""]*?)\3|id[^=]*=.*?(['""]?)(?<id>[^'""]*?)\4|.)+?>"); foreach (Match m in mc) { Console.WriteLine("id is : " + m.Groups["id"].Value); Console.WriteLine("name is : " + m.Groups["name"].Value); Console.WriteLine("value is : " + m.Groups["value"].Value); Console.WriteLine("type is : " + m.Groups["type"].Value); }