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

如何用正则让ExtractId与FileName捕获同一中间字段值?

解决方案

问题分析

你当前的正则表达式错误地将前缀ABC捕获为ExtractId,而需求是让ExtractId和FileName都捕获文件名中间的目标段(如ALL、Intra1等)。

正确正则表达式

要实现两个命名组捕获同一内容,可使用嵌套命名组的方式,让两个组指向同一匹配位置:

^ABC_(?<ExtractId>(?<FileName>[a-zA-Z0-9]+))_(?<FileDate>\d{8})T.*\.zip$

正则说明

  • ^ABC_:匹配文件名开头的固定前缀,确保只处理符合格式的文件
  • (?<ExtractId>(?<FileName>[a-zA-Z0-9]+)):嵌套命名组,内层FileName捕获中间的目标字符串,外层ExtractId同步捕获完全相同的内容
  • _(?<FileDate>\d{8}):匹配下划线后,捕获8位数字的日期部分
  • T.*\.zip$:匹配日期后的T字符及后续内容,直到结尾的.zip后缀,确保文件名完整匹配

匹配结果测试

以ABC_ALL_20230508T050011.zip为例,匹配结果为:

ExtractId = ALL
FileName = ALL
FileDate = 20230508

其余三个文件名的匹配结果均符合你的预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 12:50:19