Groovy中replaceAll()匹配数组元素的正则表达式问题求助
解决正则匹配问题
首先修正你的正则表达式,当前版本存在两处问题:
test_data\d+遗漏了下划线,正确写法应为test_data_\d+- 正则中的逻辑或需用
|而非||,后者是Groovy的逻辑运算符,在正则语法中不生效
可以将两个模式合并为更简洁的写法,能匹配所有目标元素的正则如下:
test(?:_data)?_\d+
正则解释
test:匹配固定前缀(?:_data)?:匹配可选的_data部分,(?:...)是非捕获组,避免生成多余的捕获结果_\d+:匹配下划线加一个或多个数字
修正后的Groovy代码
替换正则后,你的JMeter Groovy函数应调整为:
${__groovy(vars.get('test_ids').replaceAll(/\btest(?:_data)?_\d+\b/) { match -> "\"$match\"" },)}
额外说明
- 原代码中的捕获组
number无需保留,直接使用匹配到的完整内容即可 - 边界符
\b确保匹配的是完整元素,避免误匹配包含这些字符串的更长文本
内容的提问来源于stack exchange,提问作者Gomathy Balakrishnan
相关产品推荐
相关产品推荐

