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

如何调整正则表达式匹配两类指定格式的zip文件名

正则问题修正方案

你写的正则无法匹配第二个文件名的核心问题有3个:

  1. 未匹配_config和版本号之间的短横线:第二个文件名里_config后面还有一个-才到版本号,你原正则把第一个文件名的版本号前的-算进了前缀分组,导致匹配到_config后直接要求接数字,自然匹配失败
  2. 所有字面量.没有转义:正则里.默认匹配任意字符,要匹配文件名里的真实点号需要写成\.
  3. 版本号第四段的可选逻辑处理错误,你原写法要求第四段必须存在,和第一个文件名的规则冲突

修正后的正则

如果不需要单独捕获每个版本号段,使用简化写法即可:

^abc\.cdf\.ghi\.klm(?:_config)?-(\d+\.){2,3}\d+\.zip$

如果需要单独提取每个版本号字段,使用带捕获分组的写法:

^abc\.cdf\.ghi\.klm(?:_config)?-(\d+)\.(\d+)\.(\d+)(?:\.(\d+))?\.zip$

规则说明

  • (?:_config)?:匹配可选的_config后缀,?:表示不需要捕获该分组,不需要提取该部分内容的话可以保留
  • -:匹配版本号前固定的短横线
  • (\d+\.){2,3}\d+:匹配3~4段的版本号,同时适配1.0.0和1.0.0.18两种格式
  • 所有\.都严格匹配文件名里的点号,避免误匹配其他字符
  • 结尾的$确保文件名以.zip结尾,不会匹配带多余后缀的异常文件

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 01:15:05