You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在JMeter中使用正则表达式从HTML响应提取指定值求助

问题描述

我尝试从转义后的HTML响应中提取选中状态<option>标签的value值(即示例中的2),但用现有正则表达式时,会捕获从“Select Region”到目标引号的全部内容,求正确的正则表达式。

现有正则表达式:

Select Region&lt;/option&gt;.*&lt;option selected=&quot;selected&quot; value=&quot;(.+?)&quot;

转义后的HTML响应内容:

&lt;div class=&quot;col-lg-3 col-md-4 col-sm-12 form-group &quot;&gt;
            &lt;label&gt;      Region&lt;/label&gt;
            &lt;select class=&quot;Grid=&quot;0&quot; id=&quot;RegionId&quot; name=&quot;RegionId&quot;&gt;&lt;option value=&quot;&quot;&gt;Select Region&lt;/option&gt;
                &lt;option value=&quot;9&quot;&gt;IDX-ACO REGION CA&lt;/option&gt;
                &lt;option value=&quot;1&quot;&gt;IDX-REGION I&lt;/option&gt;
                &lt;option selected=&quot;selected&quot; value=&quot;2&quot;&gt;IDX-REGION II&lt;/option&gt;
                &lt;option value=&quot;3&quot;&gt;IDX-REGION III&lt;/option&gt;
                &lt;option value=&quot;5&quot;&gt;IDX-REGION IV&lt;/option&gt;
            &lt;/select&gt;      
        &lt;/div&gt;
解决方案

问题根源

你用的正则里,.*是贪婪匹配模式,默认还不匹配换行符,导致它会尽可能多的抓取内容,范围远超预期。而且没必要依赖前面的“Select Region”内容,直接定位选中的<option>标签更精准。

正确正则表达式

如果value值只有数字,用这个:

&lt;option selected=&quot;selected&quot; value=&quot;(\d+)&quot;

如果value可能包含字母、符号等非数字字符,换成:

&lt;option selected=&quot;selected&quot; value=&quot;([^&quot;]+)&quot;

解释

  • (\d+):精准匹配一个或多个数字,刚好对应示例里的2;
  • [^&quot;]+:匹配到下一个转义引号&quot;为止,避免贪婪匹配,能准确捕获任意类型的value值;
  • 直接定位带selected=&quot;selected&quot;的选项,完全避开无关内容的干扰,不会出现过度捕获的问题。

内容的提问来源于stack exchange,提问作者Siva

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 20:49:58