下拉列表的正则表达式

Regular expression for dropdown list

这是我的 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

但我想在顶部提到(仅第二个下拉列表的值)

感谢

将 Post 处理器 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)

It is not recommended to use regular expressions for parsing HTML, I would suggest going for XPath Extractor 代替。

  1. 将 XPath Extractor 添加为上述 returns HTML
  2. 请求的子项
  3. 配置如下:

    • 参考名称:任何有意义的东西,即 option
    • XPath 表达式://select[@name='account.favouriteCategoryId']/option/@value
    • 如果响应不是 XTML/HTML-compliant 检查 Use Tidy

演示:

参考文献: