Python使用正则表达式提取文件名中日期段后的6位数字字符串
正则提取方案
方案1:匹配固定格式日期后的6位数字(适配性优先)
按照你提出的思路,匹配YYYY_MM_DD_HH_MM_SS_格式片段后的6位数字,正则表达式如下:
\d{4}_\d{2}_\d{2}_\d{2}_\d{2}_\d{2}_(\d{6})
捕获组1的内容即为目标6位数字,该方案只要日期格式固定,即使文件名其他位置出现6位数字也不会误匹配。
方案2:反向匹配末尾区间(简洁优先)
如果可以确认目标6位数字是整个文件名倒数第二个下划线分隔的片段,可使用更简洁的反向匹配规则,不受前面前缀结构变化的影响:
_(\d{6})_[^_]*$
该规则匹配「下划线+6位数字+下划线+无下划线的后缀」的结构,直接捕获中间的6位数字,适配任意后缀变化的场景。
代码示例(Python)
import re file_list = [ "1625212673449-2021_07_02_07_55_05_111040_0CM.csv.zip", "1635508858063-1625212673449-2021_07_02_07_55_05_111040_0CM.csv.zip" ] # 使用方案1演示,替换正则即可切换方案2 pattern = re.compile(r'\d{4}_\d{2}_\d{2}_\d{2}_\d{2}_\d{2}_(\d{6})') for file_name in file_list: match_res = pattern.search(file_name) if match_res: print(match_res.group(1)) # 输出111040
内容的提问来源于stack exchange,提问作者Avión
相关产品推荐
相关产品推荐

