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

如何用正则提取URL有效路径?Grafana数据转换需求

问题描述

现有如下格式的URL数据:

/v2/ports/PF-12345
/v2/services/cloud/PF-12345
/v2/services/cloud/connections/PF-12345
/v2/services/cloud-routers/PF-L3-CUST-12345/connections
/v2/services/cloud-routers/PF-L3-CUST-12345678/connections/PF-L3-CON-12345678/bgp/c03664c5-fd8d-8623-acb5-bda4b545fb32
/v2.1/services/cloud-routers/PF-L3-CUST-12345/connections/PF-L3-CON-12345/status

需要将其转换为移除版本号(如v2、v2.1)及各类ID/UUID后的纯路径格式:

ports
services/cloud
services/cloud/connections
services/cloud-routers/connections
services/cloud-routers/connections/bgp
services/cloud-routers/connections/status

尝试使用正则表达式 /.*(?=/.*?) 但未成功,寻求可用于Grafana数据转换的正确正则表达式。

解决方案

可用的正则表达式(用于Grafana的替换转换)

查找模式:

^/v\d+\.?\d*/|/(PF-[^/]+|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})(?=/|$)

替换为空字符串(即不输入任何内容)

正则表达式说明

  1. ^/v\d+\.?\d*/:匹配开头的版本号路径段,例如 /v2/ 或 /v2.1/,确保移除所有版本前缀。
  2. |:逻辑或,分隔两组匹配规则。
  3. /(PF-[^/]+|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})(?=/|$):
    • 匹配以 / 开头的ID段:
      • PF-[^/]+:匹配所有以PF-开头的ID(直到下一个/为止);
      • [0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}:匹配标准UUID格式;
    • (?=/|$):正向预查,确保匹配的是完整的路径段(后面要么是/要么是字符串结尾),避免误删部分内容。

在Grafana中使用的步骤

  1. 进入面板的「Transform」(转换)选项卡;
  2. 添加「Replace」(替换)转换;
  3. 选择包含URL的字段;
  4. 粘贴上述查找模式到「Find」输入框;
  5. 「Replace with」留空;
  6. 应用转换即可得到目标纯路径格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 17:35:19