1
考虑下面的文字,可能是从JMeter的HTTP响应的一部分:让表达式匹配可选值,如果可能的话
<menu id="Alpha" name="alpha">
<option value="a">A</option>
<option value="b">B</option>
<option value="c" selected="selected">C</option>
</menu>
<menu id="Bravo" name="bravo">
<option value="d">D</option>
<option value="e">E</option>
</menu>
我试图提取每个菜单的ID,以及所选择的选项的值,如果有选项选择。如果没有选择选项,则默认情况下,第一个选项的值应该匹配。例如,在这个例子中,我想下面要匹配:
"Alpha" "c"
"Bravo" "d"
到目前为止,我写了下面的:
<select id="Form:parameterList:([^"]+?)".*?>.*?(?:<option value="([^"]*?)".*?(?:selected="selected")?>)?.*?</select>
这样做的问题是,只有第一个选项的值永远匹配,并且选定的选项永远不会匹配。也就是说,我想优先匹配可选模式。
感谢, 维克多
作为一个说明,第二个应该是 '// menu [option/@ selected =“selected “]/@ id' 否则,谢谢! – Victor 2014-10-09 16:19:54