C#正則表達(dá)式獲取下拉菜單(select)的相關(guān)屬性值

字號(hào):


    給幾個(gè)在C#中,使用正則表達(dá)式取頁(yè)面下拉菜單(select)中的值示例:
    代碼如下:
    //取html中全部 select 的 name
    Regex reg_name = new Regex(@"(?<=<select name=\"").*?(?=\"")");
    //取html中全部<select>項(xiàng)的值
    Regex reg_select = new Regex("(?is)<select name=*.*?>]*.*?</select>");
    //取html中一個(gè) select name 等于"Status"的值
    Regex status = new Regex(@"(?is)<select name=\""status\"">]*.*?</select>");
    一下是一段完整的代碼和方法,取html中一個(gè)下拉菜單 select name 等于”Status”的中值,添加到DropDownList中:
    代碼如下:
    string strDoc = (你的html);
    //取html中一個(gè)下拉菜單 select name 等于"Status"的中值
    Regex status = new Regex(@"(?is)<select name=\""status\"">]*.*?</select>");
    MatchCollection mc_status = status.Matches(strDoc);
    getSelectOptions(mc_status, cmbStatus);
    /// <summary>
    /// 取select對(duì)列表復(fù)制
    /// </summary>
    /// <param name="selected"></param>
    /// <param name="cmb"></param>
    void getSelectOptions(MatchCollection selected, ComboBox cmb)
    {
        if (selected.Count < 1)
            return;
        txtValues.Text = "";
        txtValues.Text = selected[0].Value.Replace("</option>", Environment.NewLine);
        string tmpTxt = "";
        foreach (string s in txtValues.Lines)
        {
            if (s == "")
                continue;
            string a = "";
            a = s.Replace("\"", "").Replace("<option value=\"", "");
            int x = a.LastIndexOf(">");
            tmpTxt += a.Substring(x + 1) + Environment.NewLine;
        }
        txtValues.Text = tmpTxt.Trim();
        cmb.Items.Clear();
        cmb.Items.AddRange(txtValues.Lines);
        cmb.SelectedIndex = 0;
        cmb.Size = cmb.PreferredSize;
    }