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

正则提取Kubernetes日志无法获取labels下app字段问题求助

调整后完整正则(保留原有文件名匹配逻辑)

(?s).*?"labels"=>\{"app"=>"(?<app>[^"]+).*?(?<tag>[^.]+)?\.?(?<pod_name>[a-z0-9](?:[-a-z0-9]*[a-z0-9])?(?:\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*)_(?<namespace_name>[^_]+)_(?<container_name>.+)-(?<docker_id>[a-z0-9]{64})\.log$

如果你的解析场景是直接从给出的K8s元数据日志内容中提取字段,不需要匹配日志文件名后缀,可以使用更简单的适配版本:

(?<pod_name>(?<="pod_name"=>")[^"]+).*?(?<namespace_name>(?<="namespace_name"=>")[^"]+).*?"labels"=>\{"app"=>"(?<app>[^"]+).*?(?<container_name>(?<="container_name"=>")[^"]+).*?(?<docker_id>(?<="docker_id"=>")[^"]+)

捕获字段说明

使用你提供的样例内容测试,可正确提取所有目标字段:

  • app:drupal-ms-brands-funyuns-qa
  • pod_name:drupal-ms-brands-funyuns-qa766f4ff-wn9
  • namespace_name:web-system
  • container_name:istio-proxy
  • docker_id:52d054c501afc6c741d528648712684612846842788742155e824cbef13041b5bdfd11f
  • tag:保留原有逻辑返回的对应值

适配说明

  • 新增(?s)修饰符开启单行匹配模式,支持跨换行匹配内容
  • 新增(?<app>[^"]+)命名捕获组,专门提取labels下的app字段值
  • 原有正则逻辑完全保留,不会影响你之前已实现的字段提取能力

内容的提问来源于stack exchange,提问作者Devops-Learner

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 06:21:02