怎么使用正则表达式实现如下功能。
本帖最后由 flyso 于 2013-03-20 13:45:50 编辑
            获取的HTML字符串如下:
<html>
<head>
</head>
<body>
<table>
<tr><td class="tll"></td><td class="tlm"></td></tr></table>
...
<ST:TextBox 
id="T_1_1_t" style="width:160px;height:25px;" src="Control/TextBox.gif" runat="server" 
tooltip="工程项目名称" /></ST:TextBox>
....
<ST:CheckBox 
id="CB_1_1_x" style="width:160px;height:25px;" src="Control/TextBox.gif" runat="server" 
tooltip="选择工程类型" /></ST:CheckBox>
</body>
</html>
怎么用正则表达式将所有
包括 
<ST 的控件的属性
 tooltip和id属性放入集合中(可以是泛型)
然后当做数据源绑定到DropDownList
绑定后最后的HTML效果是
<select ... >
	<option value="
T_1_1_t">
工程项目名称</option>
	<option value="
CB_1_1_x">
选择工程类型</option>
</select>
              
              
------解决方案--------------------   string str ="字符串";
            var list = Regex.Matches(str, @"(?is)<ST:(?=[^>]*?id=([""'])(?<id>[^""']+)\1)(?=[^>]*?tooltip=([""'])(?<tooltip>[^""']+)\2)[^>]*>").OfType<Match>().Select(t => new { id = t.Groups["id"].Value, tooltip = t.Groups["tooltip"].Value }).ToList();
          
------解决方案--------------------  string txt = "(!is)<option value=\"T_1_1_t\">工程项目名称</option>     <option value=\"CB_1_1_x\">选择工程类型</option>";
            var ma = Regex.Matches(txt, "<option.value=\"(.+?)\">(.+?)</option>").OfType<Match>().Select(x => "value=" + x.Groups[1] + " name=" + x.Groups[2]);
            foreach (var item in ma)
            {
                Console.WriteLine(item);
            }
            Console.Read();