Имеются файлы с именами в таком формате:
2013-05-26_vasya_1.flv
2010-05-20_01-31-38_vasya_1.flv
2019-05-21_vasya.flv
2011-05-27_01-22-07_vasya.flv
2013-05-29_vasya0000.flv
2015-05-29_01-31-38_vasya0000.flv
2013-05-29_333vasya.flv
2015-05-29_01-31-27_333vasya.flv
В программе которая переименовывает массово файлы (Advanced Renamer), есть вариант использования регулярных выражений, нужно на выходе получить так:
vasya_1_2013-05-26.flv
vasya_1_2010-05-20_01-31-38.flv
vasya_2019-05-21.flv
vasya_2011-05-27_01-22-07.flv
vasya0000_2013-05-29.flv
vasya0000_2015-05-29_01-31-38.flv
333vasya_2013-05-29.flv
333vasya_2015-05-29_01-31-38.flv
В общем как видите даты нужно перекинуть в конец имени.
"vasya" - рандомное имя латиницей, даты- рандомные, цифры "333" которое в начале "vasya" тоже могут быть рандомные. Вся проблема что тут два формата, "2013-05-26_" и "2015-05-29_01-31-38_", в принципе можно и два кода, то есть переименовать отдельно эти типы имен.
все что походит это такой вариант:
(.+)_(.+)
$2_$1
но оно не охватывает такой формат - "2010-05-20_01-31-38_vasya_1"
получается на выходе: "1_2010-05-20_01-31-38_vasya" что совсем не то что нужно
Виктор Таран, почему то в моей программе оно не работает, все что более менее походит это такой вариант:
(.+)_(.+)
$2_$1
но оно не охватывает такой формат - "2010-05-20_01-31-38_vasya_1"
получается на выходе: "1_2010-05-20_01-31-38_vasya" что совсем не то что нужно
попробуй более простой синтаксис
(^[0-9]+\-[0-9]+\-[0-9]+(?|(_[0-9]+\-[0-9]+\-[0-9]+)|))\_(.+)(\.flv)
с экранированием тире.
если не поможет то зачем тебе программа то можно и с консоли
у тебя винда или линь?
Виктор Таран, винда, в программе видно какой будет результат и можно увидеть косяк до переименовки. Вот я почти у цели:
(\d{4}-\d{2}-\d{2})[_](.+)
$2_$1
теперь только в этом формате косяк 2011-05-27_01-22-07_vasya получается на выходе: 01-22-07_vasya_2011-05-27
думаю надо тремя блоками как то.
i3core, шаблон применяете только к имени файла или имя + расширение? Там есть переключатель.
Чтобы работало в обоих вариантах: ^(\d+-\d+-\d+(?:_\d+-\d+-\d+|))_([^.]+) $2_$1