Grafana变量场景下仅用正则提取字符串指定位置字符生成对阵格式
正则实现方案
基础版本(直接输出原字符格式)
适用场景:已提取到24位固定长度channel_id
- 匹配正则:
^.{11}(.{3}).*(.{3})$ - 替换模板:
$1 vs $2
逻辑说明:
^ 匹配字符串开头,.{11} 跳过前11位字符,第一个捕获组(.{3})提取第12到14位的3个字符,.* 匹配中间所有剩余字符,第二个捕获组(.{3})提取末尾3个字符,替换时直接拼接两个捕获组即可得到目标格式。
适用场景:直接从原始JSON中一步提取
- 匹配正则:
.*channel_id=".{11}(.{3}).*(.{3})".* - 替换模板:
$1 vs $2
可以省略先单独提取channel_id的步骤,直接从原始接口返回的JSON内容中生成目标格式。
优化版本(输出大写字符)
Grafana 7.1及以上版本支持正则替换转义符,将替换模板修改为 \U$1\E vs \U$2\E 即可输出全大写的格式,例如 COL vs USA。
示例验证
以示例channel_id s0022110430col0901241usa 测试:
- 提取第12-14位结果为
col - 提取末尾3位结果为
usa - 最终输出:
col vs usa,开启大写优化后输出COL vs USA
注:该方案仅适用于channel_id固定为24位长度的场景,无需额外处理长度异常分支。
内容的提问来源于stack exchange,提问作者Chlorid
相关产品推荐
相关产品推荐

