JMeter中使用Regular expression extractor提取HTML Body目标值求助
提取UUID的正则表达式方案(新手友好版)
别担心,正则表达式刚开始接触确实容易懵,我来一步步帮你搞定这个提取需求!
直接能用的正则表达式
针对你给出的代码片段,这个正则可以精准提取目标UUID:
rfb\.connect\("[^"]+",\s*[^,]+,\s*"([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})",
在Regular Expression Extractor里的配置步骤
- Reference Name:填一个方便后续引用的名字,比如
extractedUUID - Regular Expression:把上面的正则复制进去
- Template:填
$1$(这个表示取正则里第一个捕获组的内容,也就是我们要的UUID) - Match No.:填
1(你的代码里只会有一个符合要求的UUID匹配项)
正则拆解(帮你理解原理)
我把正则拆成几部分,你一看就懂:
rfb\.connect\(:匹配开头的rfb.connect(,这里的\.是转义点号——正则里点号默认匹配任意字符,转义后才会匹配真实的点"[^"]+":匹配第一个引号里的域名内容,[^"]+表示匹配除了引号之外的任意字符,直到遇到下一个引号,\s*:匹配逗号和后面可能的空格(\s*表示0个或多个空白字符,不管有没有空格都能匹配)[^,]+:匹配第二个参数(port),不管它是数字还是变量名,只要到下一个逗号就停止,\s*":匹配第二个参数后的逗号、空格和第三个引号([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}):核心的捕获组,专门匹配UUID的标准格式(8位-4位-4位-4位-12位的十六进制字符),括号包裹的部分就是我们要提取的内容",:匹配UUID后面的引号和逗号,确保我们只取到正确的位置
简化版正则(上下文固定时可用)
如果你的代码结构永远是这个样子,也可以用更简洁的版本:
"([a-f0-9-]+)",\s*path\);
这个直接匹配path);前面的引号内容,写法更简单,但依赖代码上下文固定不变。
内容的提问来源于stack exchange,提问作者Léandre
相关产品推荐
相关产品推荐

