正则表达式获取html选择标记中的所有值

时间:2017-12-06 06:44:44

标签: c# regex

我正在尝试从特定下拉框中获取所有

示例:

<select id='countries'>
    <option value='0'>All Categories</option>
    <option value='1'>USA</option>
    <option value='2'>China</option>
    <option selected='selected' value='3'>India</option>
    <option value='4'>Japan</option>
</select>

<select id='Gender'>
    <option value='0'>All Categories</option>
    <option selected='selected' value='1'>Male</option>
    <option value='2'>Female</option>
</select>

<select id='Body_ddlSite'>
    <option value='1'>Select-</option>
    <option value='2'>ECOSPACE</option>
    <option selected='selected' value='3'>MILLENNIUM TOWERS</option>
    <option value='4'>ABMIT-MT</option>
</select>

注意:将上面的html视为普通字符串

结果应该是: 对于id ='性别'

0
1
2

All Categories
Male
Female

现在,我试图通过使用此正则表达式获取指定符<option>块的所有<select>...</select>

(?<=id='Gender'>)((.|\n)*?)(?=</select>)

以上正则表达式的结果:

<option value='0'>All Categories</option>
<option selected='selected' value='1'>Male</option>
<option value='2'>Female</option>

但现在我想获取与之相关的所有值。

1 个答案:

答案 0 :(得分:2)

这对我有用:

(?:\G(?!\A)|\bid='Gender'>)\s*<option\s[^<]*?value='(?<val>\‌​d+)'>(?<txt>[^<]*)</‌​option>