我正在使用Loadrunner,需要提出一个正则表达式,该正则表达式将从传入的HTTP响应中选取特定单词并将其保存在参数中。

响应如下所示:

\t\t\t\t\t<option value="Rose taupe" id="WD26" class="WD26">Rose taupe</option>\n
\t\t\t\t\t<option value="Myrtle" id="WD20" class="WD20">Myrtle</option>\n
\t\t\t\t\t<option value="Deep carmine pink" id="WD142" class="WD142">Deep carmine pink</option>\n
\t\t\t\t\t<option value="Wild Strawberry" id="WD66" class="WD66">Wild Strawberry</option>\n
\t\t\t\t\t<option value="Cream" id="WD72" selected="selected" class="WD72">Cream</option>\n
\t\t\t\t\t<option value="Tangerine yellow" id="WD94" class="WD94">Tangerine yellow</option>\n


我想拾取在前端下拉菜单中选择的颜色,在响应中此颜色线在其中选择了“ selected”。但是,这对于每个实例都是随机的,因此正则表达式必须从包含selected =“ selected”的行中选择颜色名称。

然后,我必须在脚本中使用它,如下所示:

web_reg_save_param_regexp ("ParamName=SelectedColor",
"RegExp=-regular expression here-",
"Ordinal=All",
LAST);


谢谢您的帮助!

最佳答案

RegExp /<\s*option\s+(?=.*selected\s*=).*value\s*=\s*(?:"([^"]*)"|'([^']*)')/goption标记与selected属性匹配。属性的顺序是任意的。如果属性引号可能是',那么您需要处理第二个匹配组,请参见示例。



var s = '\t\t\t\t\t<option value="Rose taupe" id="WD26" class="WD26">Rose taupe</option>\n' +
        '\t\t\t\t\t<option value="Myrtle" id="WD20" class="WD20">Myrtle</option>\n' +
        '\t\t\t\t\t<option value="Deep carmine pink" id="WD142" class="WD142">Deep carmine pink</option>\n' +
        '\t\t\t\t\t<option value="Wild Strawberry" id="WD66" class="WD66">Wild Strawberry</option>\n' +

        '\t\t\t\t\t<option value="Cream" id="WD72" selected="selected" class="WD72">Cream</option>\n' +

        '\t\t\t\t\t<option id="WD72" value=\'Cream\' selected="selected" class="WD72">Cream</option>\n' +

        '\t\t\t\t\t<option value="Tangerine yellow" id="WD94" class="WD94">Tangerine yellow</option>\n';

var re = /<\s*option\s+(?=.*selected\s*=).*value\s*=\s*(?:"([^"]*)"|'([^']*)')/g;
var m;

while (m = re.exec(s)) {
    console.log("Selected color: " + (m[1]||m[2]) + ", match " + m[0]);
}

关于c - 正则表达式,用于从HTTP响应中选择颜色名称,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33072624/

10-11 09:05