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

正则表达式多值提取求助:适配Grafana命名捕获组需求

解决Grafana中用命名捕获组提取多个值的正则问题

解决方案正则表达式

如果目标是提取JSON值部分的数字(即冒号后的数字),使用以下正则:

:(?<value>\d+)

如果需要更精确匹配(确保数字后是逗号或右大括号),可以用:

:(?<value>\d+)(?=[,}])

说明

  1. 命名捕获组:(?<value>\d+) 将匹配到的一个或多个数字捕获到名为value的组中,符合Grafana的要求。
  2. 全局匹配:在Grafana的变量配置中,确保正则匹配启用全局模式(多数场景下Grafana默认会处理多个匹配项),这样就能捕获字符串中所有符合条件的数字,而非仅第一个。
  3. 适配示例字符串:对示例字符串{"146":146,"547":547,"179":179,"79":79},上述正则会分别捕获146、547、179、79,最终Grafana会将这些值拼接为146, 547, 179, 79。

原正则问题分析

你之前的正则逻辑过于复杂,存在两个核心问题:

  • 嵌套了捕获组((?<value>(\d*?\S))),导致实际捕获的内容可能包含多余字符,不符合预期。
  • 使用\G的连续匹配逻辑没有正确适配JSON结构,无法准确定位所有目标数字。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 07:25:10