2017-09-27 47 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內容是嵌套的,純正規表達式不適合這項工作。相反,使用解析器。 –