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

如何修改正则表达式以匹配目标字符串并排除无关内容

解决方案

修改后的正则表达式

/(?<=^|\/)(?!.*\/)(.*?)(?:(?<!-\d):|-(?:v?))([\d.-]+)(?=\.|$)/

关键调整说明

  1. 排除RPM类误匹配:通过(?<!-\d):断言,确保匹配:分隔符时,其前面不是-数字组合,直接过滤掉openssl-1:1.1.1k-9.el8_7这类格式的字符串。
  2. 兼容两种版本分隔逻辑:
    • 处理镜像标签格式(如name:v1.7.9或name:1.0.4):匹配:分隔符,且规避RPM的数字前缀场景。
    • 处理无标签分隔的格式(如name-v4.13.0):匹配-v或-作为分隔前缀,保证名称捕获截止到版本前的有效位置。
  3. 锁定最后路径段:(?<=^|\/)和(?!.*\/)确保只匹配路径分隔符/后的最后一段内容,不会误抓路径中的中间部分。

测试验证

  • 目标匹配案例均能正确捕获:
    • rhmtc/openshift-velero-plugin-rhel8:v1.7.9-4 → 名称:openshift-velero-plugin-rhel8,版本:1.7.9-4
    • oc-mirror-plugin-container-v4.13.0-202305091542.p0.gbee629a.assembly.stream → 名称:oc-mirror-plugin-container,版本:4.13.0
    • oadp/oadp-velero-plugin-for-aws-rhel8:1.0.4-5 → 名称:oadp-velero-plugin-for-aws-rhel8,版本:1.0.4-5
  • 无关字符串openssl-1:1.1.1k-9.el8_7、java-1.8.0-ibm-1:1.8.0.7.15-1jpp.1.el7均不会被匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 10:50:25