Я использую приложение 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*