当前位置: 代码迷 >> ASP.NET >> 正则表达式,能够获取一串html里面所有客户端控件的id、name、type属性
  详细解决方案

正则表达式,能够获取一串html里面所有客户端控件的id、name、type属性

热度:9085   发布时间:2013-02-25 00:00:00.0
求一个正则表达式,能够获取一串html里面所有客户端控件的id、name、type属性
在论坛里面找了类似的正则表达式,能够获取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);                }
  相关解决方案