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

如何用正则提取方括号内空格分隔的字符串?

解决Grafana Mongo变量提取空格分隔值的正则方案

问题原因

你之前用的\[(.*?)\]只能将方括号内的整个字符串(比如Microservice_1 Microservice_2 Microservice_3)作为单个结果提取,无法拆分出独立的服务名。

两种可行方案

方案1:先提取括号内容,再拆分空格

  1. 用正则捕获方括号内的全部内容:
    ^\[(.*)\]$
    
    这个正则会精准匹配从开头[到结尾]的所有内容,把中间的空格分隔字符串单独提取出来。
  2. 在Grafana变量设置的Split by选项中选择空格,系统会自动把捕获到的字符串拆分成每行一个的独立值。

方案2:直接用正则捕获每个独立服务名

如果不想依赖拆分功能,直接用正则匹配每个服务名:

(?:\[| )([^ \]]+)(?: |\])
  • 拆解说明:
    • (?:\[| ):匹配开头的[或者空格(非捕获组,不输出这部分内容)
    • ([^ \]]+):捕获组,匹配除了空格和右括号]之外的所有字符(完美适配你的服务命名格式,若服务名有特殊字符可调整此部分)
    • (?: |\]):匹配结尾的空格或者](非捕获组,不输出)

将这个正则填入Grafana变量的Regex字段后,系统会自动提取所有捕获到的服务名,生成每行一个的变量选项。

测试验证

输入示例:[Microservice_1 Microservice_2 Microservice_3]
使用方案2的正则会得到三个独立结果:

  • Microservice_1
  • Microservice_2
  • Microservice_3

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 09:52:06