<input id="input1" name="input11">
<select name="DropDownList1" id="DropDownList1">
<option value="11">11</option>
<option value="2">22</option>
<option selected="selected" value="3">33</option>
<option value="4">44</option>
</select>结果:
<select name="DropDownList1" id="DropDownList1">
<option value="11">11</option>
<option value="2">22</option>
<option selected="selected" value="3">33</option>
<option value="4">44</option>
</select>这个正则怎么写为什么这样不行<select [^>]*>([^select])*</select>

解决方案 »

  1.   

    <select (?<=<(\w+)).*(?=<\/\1>)</select>
      

  2.   

    <select((?!ctype).)*ctype=\"dropdownlist\"[^>]*[/]?>(<option [^>]*>[^<]*</option>)*</select>
      

  3.   


    <select[^>]*>(?!</select>).*?</select>
      

  4.   


            string str = "<input id=\"input1\" name=\"input11\">\n\r<select name=\"DropDownList1\" id=\"DropDownList1\">\n\r<option value=\"11\">11</option>\n\r<option value=\"2\">22</option>\n\r<option selected=\"selected\" value=\"3\">33</option>\n\r<option value=\"4\">44</option>\n\r</select>";
            System.Text.RegularExpressions.Regex reg = new System.Text.RegularExpressions.Regex(@"(?is)(?<content><select[^>]*>(?!</select>).*?</select>)", System.Text.RegularExpressions.RegexOptions.IgnoreCase);
            System.Text.RegularExpressions.MatchCollection m = reg.Matches(str); //设定要查找的字符串
            for (int i = 0; i < m.Count; i++)
            {
                Response.Write(m[i].Groups["content"].ToString());
            }
      

  5.   

         string str=@"<input id='input1' name='input11'> <select name='DropDownList1' id='DropDownList1'> <option value='11'>11</option> <option value='2'>22</option> <option selected='selected' value='3'>33</option> <option value='4'>44</option> </select>";     string strReg = @"<select [^>]*>(.*)</select>";
         Regex r = new Regex(strReg);
         Match m = r.Match(str);
         string strM=m.Value.ToString();