正则表达式,用于捕获下拉列表中的选定值

时间:2017-10-16 12:48:02

标签: regex

我想创建一个正则表达式,在特定ID的下拉列表中为所选字段提供结果。

例如:如果我通过 id ="国家" ,结果应为印度(因为选择了印度)或 id = "性别" 结果应为男性

<select id='countries'>
    <optionvalue='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>

注意:请将上述HTML视为平面文字。

1 个答案:

答案 0 :(得分:2)

使用正则表达式提取HTML数据是一个非常非常的坏主意。这是复杂而低效的。最好为HTML使用HTML解析器(如JSoup或BeautifulSoup),使用JSON库解析JSON等。

话虽如此,这是一个正则表达式,只要引用id就可以正常工作。如果您的ID位于名为id的变量中,那么您的正则表达式将是

regex = "<select[^>]*? id=['\"]" + id
        + "['\"].*?<option[^>]*? selected[^>]*?>([^<]*)";

请注意,要使其正常工作,具有该ID的select必须具有选定的选项。