regex - 正则表达式 - 将文件重命名为文件名中的最高分辨率
问题描述
我正在使用一个名为 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*
解决方案
试试这个^(1080P|720P|480P|240P).*,(.*)
。将^
匹配该行中的第一次出现。
推荐阅读
- python - 填写表格 -> 点击链接 -> 抓取数据
- python - Python xml 使用 xml.etree.ElementTree 读取是否具有标记值
- c++ - 为什么我的 DBus 调用会给出 UnknownMethod DBus 错误?
- datatables-1.10 - 使用 ScrollX、ScrollY 时数据表列未对齐
- python - 用python读取共享内存
- angular - Rxjs 重复直到要处理的项目为零
- python - Django:django.urls.exceptions.NoReverseMatch:没有找到带有参数'('',)'的'book'的反向
- javascript - 如何将以下 SVG 代码从字母“B”更改为“A”
- xamarin.forms - 如何以编程方式将标签控件添加到 XAML 代码中的特定位置?
- mysql - 使用休眠在 MySql 中插入多边形对象