如何使用正则表达式提取HTML中方括号内数字以适配JMeter性能测试
解决方案
方案1:一步到位正则(性能最优,推荐高并发场景使用)
直接用单条正则完成定位+提取,无需二次匹配,资源消耗最低,可直接在JMeter正则提取器中使用:
(?s)Social Insurance Number.*?\[(\d+)\]
配置说明:
- JMeter正则提取器的「模板」字段填
$1$ - 「匹配数字」字段填
1 - 正则开头的
(?s)已开启单行模式,可兼容HTML换行场景,无需额外配置其他参数
方案2:基于现有匹配逻辑的二次提取
如果你需要保留现有先匹配两处Social Insurance Number中间内容的逻辑,直接对匹配到的中间结果使用如下正则提取数字即可,无额外捕获组,性能损耗极小:
(?<=\[)\d+(?=\])
性能说明
两个方案都采用了最小回溯的正则规则,没有冗余匹配逻辑,单条匹配耗时在微秒级,完全可以支撑数百并发的性能测试场景,资源消耗远低于HTML/XML解析器。
内容的提问来源于stack exchange,提问作者Vincent L
相关产品推荐
相关产品推荐

