首页 > 解决方案 > 正则表达式 - 将文件重命名为文件名中的最高分辨率

问题描述

我正在使用一个名为 Advanced Renamer 的应用程序来重命名我的视频文件。我尝试通过选择可用的最高质量来重命名视频文件,这是在当前文件名本身中指定的。

例如,原始未更改的文件名如下所示:1080P,720P,480P,240P,_123456789.mp4

我使用正则表达式将此示例文件重命名为:1080P_123456789.mp4.

但是,我现在使用的正则表达式的结果.*(?=1080P|720P|480P|240P)不能正常工作,它采用的是最低质量而不是最高质量:240P,_123456789.mp4

正确的例子:

1080P,720P,480P,240P,_0987654321.mp4  --> 1080P_0987654321.mp4
720P,480P,_0987654321.mp4             --> 720P_0987654321.mp4
480P,240P,_0987654321.mp4             --> 480P_0987654321.mp4

错误的例子我的正则表达式给了我:

1080P,720P,480P,240P,_0987654321.mp4  --> 240P_0987654321.mp4
720P,480P,_0987654321.mp4             --> 480P_0987654321.mp4
480P,240P,_0987654321.mp4             --> 240P_0987654321.mp4

编辑:解决方案

^.*?(1080P|720P|480P|240P).*?(_\d+\.mp4).*$
OR 
^.*?(\d+P).*?_(\d+\.mp4)\S*
OR
.*?(\d+P)[^.]*_(\d+\.mp4)\S*

标签: regexfilerename

解决方案


试试这个^(1080P|720P|480P|240P).*,(.*)。将^匹配该行中的第一次出现。


推荐阅读