2017-09-27 181 views
2

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

正则表达式与下拉框有什么关系?这点我不清楚。 –

+0

其实我正在使用jmeter进行负载测试,所以我需要这些值在jmeter中放入更多的HTTP请求。 –

+0

考虑在这里使用HTML解析器而不是纯正则表达式。 –

回答

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) 
+0

感谢它正在工作,但我需要正则表达式因为我必须使用正则表达式提取器。可能吗? –

+0

添加正则表达式解决方案 – user7294900

3

It is not recommended to use regular expressions for parsing HTML,我建议去为XPath Extractor代替。

  1. 添加的XPath提取作为返回上面的HTML请求的孩子
  2. ,将其配置如下:

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

演示:

XPath Extractor Demo

参考文献:

+0

感谢德米特里它为我工作,但是有可能使用纯正则表达式? –

+0

由于您的HTML内容是嵌套的,纯正规表达式不适合这项工作。相反,使用解析器。 –