如何用正则表达式移除Grafana变量中的%20字符
解决Grafana变量中%20替换为空格的问题
方法一:使用Grafana内置URL解码函数(推荐)
%20是URL编码格式的空格,直接用decodeURIComponent()函数即可一次性解码所有URL编码字符,比正则更准确且不易出错。
- 若用SQL数据源,可在查询中直接处理:
SELECT trim(decodeURIComponent(your_column_name)) FROM your_table - 若为Prometheus等时序数据源,可结合
trim()处理首尾多余空格(比如你示例中第一行末尾的%20解码后的空格):label_values(trim(decodeURIComponent(instance)), "instance")
方法二:正则表达式全局替换
如果必须用正则,核心是匹配所有%20并全局替换为空格:
- 在Grafana变量的「Regex」配置项中,设置匹配规则为
/%20/g,替换值为空格(); - 或在Prometheus查询中使用
replace函数:replace(your_target_label, "%20", " ", "g")
这里的"g"参数表示全局替换,会把字符串中所有%20都替换为空格,同样可搭配trim()清理首尾空格。
处理效果
原始数据:
PSM%20APP%20ST%20 PSM%20AV PSM%20High%20Ase PSM%20Ate
处理后将得到:
PSM APP ST PSM AV PSM High Ase PSM Ate
内容的提问来源于stack exchange,提问作者Avellino
相关产品推荐
相关产品推荐

