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

如何编写通用RegEx从监控指标字符串中提取目标内容?

正则表达式提取特定字段方案

需求背景

原始文本示例:

CpuUtilization[GqIF:CA-TORONTO-1-AD-1 | FAULT-DOMAIN-3 | ocid1.image.oc1.ca-toronto-1.aaaaaaaaq4cxrudcxy5seck2cweks2zglo2tfieag6svtvqssa2zmjha | Default | ca-toronto-1 | oke-ccf3jglvbia-nc7pit2gv2a-sa65utwc32a-2 | ocid1.instance.oc1.ca-toronto-1.an2g6ljrwe6j4fqcgrlo7dmzkrtbcgr3jy35gie3qh3w65ctfh3hsd6da | VM.Standard.E2.2]

需要从中提取oke-ccf3jglvbia-nc7pit2gv2a-sa65utwc32a-2这类以oke-开头的字段,且文本内容可能变化,需通用正则表达式。此前尝试的([^\\|]+)\\|.+仅能提取第一个|前的内容,无法满足需求。

通用正则方案

方案1:固定位置匹配(目标为第6个分隔项)

若目标字段始终位于第6个|分隔的位置,可使用:

^CpuUtilization\[[^|]+\s*\|\s*[^|]+\s*\|\s*[^|]+\s*\|\s*[^|]+\s*\|\s*[^|]+\s*\|\s*(oke-[^\s|]+)

说明:匹配开头的CpuUtilization[,依次跳过前5个|分隔的内容,捕获第6个以oke-开头的字段。

方案2:特征匹配(目标字段以oke-开头)

若目标字段位置不固定,但始终以oke-开头且被|或方括号包裹,可使用:

CpuUtilization\[[^\]]*\|\s*(oke-[^\s|]+)\s*\|

说明:定位到CpuUtilization[后的内容,匹配到包含oke-的字段,确保该字段被|分隔。

或者更灵活的版本(可直接提取所有oke-开头的字段):

\boke-[^\s|]+\b

说明:利用单词边界\b匹配以oke-开头,后续不包含空格和|的完整字段。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 13:36:06