这是我的HTML代码。
<select name="account.languagePreference"><option value="english">english</option>
<option value="japanese">japanese</option></select>
<select name="account.favouriteCategoryId"><option value="FISH">FISH</option>
<option value="DOGS">DOGS</option>
<option value="REPTILES">REPTILES</option>
<option value="CATS">CATS</option>
<option value="BIRDS">BIRDS</option></select>
问题: - 我想要第二个下拉列表的正则表达式(答案应如下所述)
Match[][]=FISH
Match[][]=DOGS
Match[][]=REPTILES
Match[][]=CATS
Match[][]=BIRDS
请帮助我,我无法提取完整的匹配。
我使用正则表达式作为
<select name="account.favouriteCategoryId">.+|\s+<option value="(.*?)">.*?</option>.+|\s+</select>
将o / p改为
Match count: 6
Match[1][0]=
<option value="japanese">japanese</option></select></td>
Match[1][1]=japanese
Match[2][0]=<select name="account.favouriteCategoryId"><option value="FISH">FISH</option>
Match[2][1]=null
Match[3][0]=
<option value="DOGS">DOGS</option>
Match[3][1]=DOGS
Match[4][0]=
<option value="REPTILES">REPTILES</option>
Match[4][1]=REPTILES
Match[5][0]=
<option value="CATS">CATS</option>
Match[5][1]=CATS
Match[6][0]=
<option value="BIRDS">BIRDS</option></select></td>
Match[6][1]=BIRDS
但我想在顶部提到(仅限第二个下拉列表的值)
谢谢
答案 0 :(得分:3)
使用后处理器CSS/JQuery Extractor以及以下内容:
Reference Name: category (the variable )
CSS/Jquery expression: select[name=account.favouriteCategoryId]> option
Match No. -1 (return all options)
您将获得变量:
category_1=FISH
category_2=DOGS
category_3=REPTILES
category_4=CATS
category_5=BIRDS
您可以使用以下方法在正则表达式提取器中执行此操作:
Regular Expression: favouriteCategoryId">(([\S\s]*)<option value="([^"]+)*">(\w+)<\/option>([ \s\t\n]+)([\S\s]*)+)
Match No: -1 (to get all)
答案 1 :(得分:3)
It is not recommended to use regular expressions for parsing HTML,我建议改为XPath Extractor。
按如下方式配置:
option
//select[@name='account.favouriteCategoryId']/option/@value
Use Tidy
框演示:
参考文献: