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

如何用Regex匹配文件序列中文件名末尾的帧编号?

解决方案:从文件名末尾提取最后一组数字作为帧编号

完全可以实现,核心思路是从文件名末尾反向定位,匹配扩展名前的第一组连续数字,不管文件名前面有多少其他数字,也兼容任意长度的帧号和不同扩展名。

核心正则表达式

(\d+)\.[^.]+$

正则说明

  • (\d+):捕获任意长度的连续数字(保留前导零,这就是目标帧编号)
  • \.:匹配文件名中的最后一个点(分隔文件名主体与扩展名)
  • [^.]+:匹配扩展名部分(任意非点字符,覆盖jpg、png、jpeg、exr等所有常见扩展名)
  • $:锚定到字符串末尾,确保匹配的是最后一组数字

示例验证

针对你给出的文件序列render1frame0001.png到render1frame0200.png,用该正则匹配时:

  • 捕获组会精准提取0001、0002……0200,完全忽略前面的1
  • 遇到shot_abc789_00123.jpeg这类文件名,能提取00123
  • 扩展名换成.tiff、.mov也能正常匹配

代码示例(以Python为例)

如果用Python处理文件列表,可参考以下代码:

import re

file_list = [
    "render1frame0001.png",
    "render1frame0002.png",
    "shot_abc789_00123.jpeg",
    "file.0045.tiff"
]

for filename in file_list:
    match = re.search(r'(\d+)\.[^.]+$', filename)
    if match:
        frame_num = match.group(1)
        print(f"{filename} -> 帧编号:{frame_num}")

运行输出:

render1frame0001.png -> 帧编号:0001
render1frame0002.png -> 帧编号:0002
shot_abc789_00123.jpeg -> 帧编号:00123
file.0045.tiff -> 帧编号:0045

特殊场景适配

如果遇到无扩展名的文件名(比如render1frame0001),可将正则调整为(\d+)$,直接匹配字符串末尾的连续数字,同样满足需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 00:43:27