我想创建一个正则表达式,在特定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视为平面文字。
答案 0 :(得分:2)
使用正则表达式提取HTML数据是一个非常非常的坏主意。这是复杂而低效的。最好为HTML使用HTML解析器(如JSoup或BeautifulSoup),使用JSON库解析JSON等。
话虽如此,这是一个正则表达式,只要引用id就可以正常工作。如果您的ID位于名为id
的变量中,那么您的正则表达式将是
regex = "<select[^>]*? id=['\"]" + id
+ "['\"].*?<option[^>]*? selected[^>]*?>([^<]*)";
请注意,要使其正常工作,具有该ID的select必须具有选定的选项。