用于从 HTTP 响应中获取颜色名称的正则表达式
Regex for picking up a color name from HTTP response
我正在使用 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*(?:"([^"]*)"|'([^']*)')/g
将匹配具有 selected
属性的 option
标签。属性的顺序是任意的。如果属性引号可能是 '
那么您需要处理第二个匹配组,请参见示例。
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]);
}
下面的代码可以工作。
web_reg_save_param_ex(
"ParamName=SelectedItem",
"LB/IC/DIG=id=\"^^^^\" selected=\"selected\"",
"RB=</option>",
"Ordinal=1",
SEARCH_FILTERS,
"Scope=ALL",
LAST);
我正在使用 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*(?:"([^"]*)"|'([^']*)')/g
将匹配具有 selected
属性的 option
标签。属性的顺序是任意的。如果属性引号可能是 '
那么您需要处理第二个匹配组,请参见示例。
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]);
}
下面的代码可以工作。
web_reg_save_param_ex(
"ParamName=SelectedItem",
"LB/IC/DIG=id=\"^^^^\" selected=\"selected\"",
"RB=</option>",
"Ordinal=1",
SEARCH_FILTERS,
"Scope=ALL",
LAST);