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

Groovy脚本:如何用单命令拆分镜像仓库URL的镜像名与标签?

Groovy脚本提取镜像仓库URL中的镜像名与标签

你的原代码直接用split(':')会把镜像仓库的端口号(比如示例中的:1234)也拆分出来,导致结果不符合预期。要实现单个命令提取镜像名和标签,可以用正则表达式分组匹配,精准定位最后一个冒号分隔的标签部分:

def registry_url = 'klp.lab.eu.org:1234/repo_list/EU/node:1.1-alpine'
def (image, tag) = (registry_url =~ /^(.*):(.*)$/)[0][1..2]

println "镜像名: ${image}" // 输出 klp.lab.eu.org:1234/repo_list/EU/node
println "标签: ${tag}"     // 输出 1.1-alpine

正则表达式^(.*):(.*)$的作用是:

  • ^(.*) 匹配从开头到最后一个冒号之前的所有内容(即完整的镜像名,包含仓库地址、端口和路径)
  • :(.*)$ 匹配最后一个冒号之后到结尾的内容(即镜像标签)

如果不想用正则,也可以通过lastIndexOf定位最后一个冒号的位置,一行完成变量赋值:

def registry_url = 'klp.lab.eu.org:1234/repo_list/EU/node:1.1-alpine'
def colonPos = registry_url.lastIndexOf(':'); def (image, tag) = [registry_url[0..<colonPos], registry_url[colonPos+1..-1]]

这两种方式都能满足你“单个命令(一行赋值)”的需求,正则方式更简洁直观。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 09:05:00