Страница 9 из 52

Добавлено: Сб мар 26, 2011 00:42
Flasher
Добавлю свою мысль: лучше бы начать с обычных выражений (жмём F1 в диалоге "Групповое переименование"), которые к данному случаю тоже вполне подходят.

Добавлено: Сб мар 26, 2011 00:51
Tol!k
gatalsky2010 писал(а):где можно почитать подробнее
В справке, на форуме и в других интернетах

Добавлено: Сб мар 26, 2011 14:36
gatalsky2010
Про оверквотинг подумал но решил что места это не так критично. На дальнейшее буду иметь ввиду. Кто скажет как можно эти две комманды повесить на две раные кнопки (как создавать кнопку MULTIRENAME на панели инструментов уже разобрался, но как туда параметры нужные задать :dunno:)?[/quote]

Добавлено: Сб мар 26, 2011 17:21
Avada
gatalsky2010
Каждый шаблон, выставив все параметры переименования, сохранить отдельно (через выпадающий список в правой части окна группового переименования). Дальше в качестве команды для каждой кнопки указать MULTIRENAME имя_шаблона.

Добавлено: Вс июл 03, 2011 09:30
svshilo
есть список видео файлов
вот фрагмент

Duck_TalesDVDRip_1990_DUB-s01e016.avikciorlashj.avi
DuckTales-DVDRip_1990_DUB-s01e015.avixcgwf.avi
DuckTales-DVDRip_1990_DUB-s01e018.aviksdjfwjfklj.avi
DuckTales-DVDRip_1990_DUB-s01e019.avi
DVDRip_-s01e017.avixljwpoj.avi


Нужно переименовать все файлы в каталоге так, чтобы остались только номера серий без ведущего нуля.

Я написал так
Найти: e0([0-9]+).{0,}(\.[a-zA-Z]{3,}$)
Заменить на: $1$2
  • Правильно ли я написал регулярное выражение?
  • Может быть можно его упростить или более изящно написать?
  • Можно ли как-то без использования регулярок сохранить в таких случаях тип файла, чтобы он не затирался, потомучто в каталоге файлы с разными типа, и если туп в поле ...РАСШИРЕНИЯ написать AVI, то затрутся реальные типы у некоторых файлов?

Добавлено: Вс июл 03, 2011 10:06
Avada
svshilo писал(а):Правильно ли я написал регулярное выражение?
ИМХО, нет. Но вообще-то автору должно быть виднее — достигается поставленная задача с любым произвольным файлом или нет. Столбец "Новое имя" в ИГП для того и существует.
А я не понял самое главное: что же необходимо получить в результате. Там получаются уж явно не "только номера серий без ведущего нуля". Пару примеров ожидаемого результата для уже приведённых исходных имён попрошу.
svshilo писал(а):Может быть можно его упростить или более изящно написать?
Во-первых, напрашивается встречный вопрос: вам шашечки или ехать?
Во-вторых, невозможно полностью оценить правильность регулярки и — тем более — говорить про упрощение/изящество, не понимая ожидаемого результата (см. выше).

О третьем вопросе — после прояснения первых двух.

Добавлено: Вс июл 03, 2011 12:43
svshilo
Avada писал(а):
Регулярка в этом конкретном случае работает, пока результат выдаёт правильно, просто я новичок, хотел узнать правильно ли написал.

и т.д., т.е. остаются только номера серий и всё, ну или можно одинаковое начало имени сделать, чтобы не в разнобой были серии. А то открываешь каталог, а там, например, после 16 25 серия, а потом 11.

я так понимаю, что когда поиск/замену используешь, то поле "...расширения" не работает и расширения можно сохранить только используя регулярное выражение типа (\.[a-zA-Z]{3,}$), хотя может я неправильно написал, но в это конкретном случае оно верно подставляет тип файла.
s58.radikal точка ru/i160/1107/61/6878f923b2ca.png
Может вот так надо e0([0-9]{2}).{0,}(\.[a-zA-Z]{3,}$)
регулярка находит фрагмент в имени файла e0 (т.к. он присутствует во всех файлах) потом запоминает две цифры в переменную №1, потом идёт любое количество любых символов и запоминается расширение файла из трёх и более символов в переменную №2, потому как попадаются расширения типа mpeg, divx

после переименования с таким выражением на выходе получаются файлы:
Duck_TalesDVDRip_1990_DUB-s01e016.avikciorlashj.avi => 16.avi
DuckTales-DVDRip_1990_DUB-s01e015.avixcgwf.avi => 15.avi
DVDRip_-s01e017.avixljwpoj.avi.mpeg => 17.mpeg


P.S. можете посоветовать какую-нибудь стояющую книженцию по регуляркам или ресурс в Интернете?

Добавлено: Вс июл 03, 2011 14:26
Avada
svshilo
То, что включена опция "Подстановка", видно исключительно на картинке. В постах про это — ни единого слова. Да, если она включена, всё вроде как работает указанным образом, но годится это только для буквенных расширений и двух результирующих цифр.
А если в расширении не сплошные буквы, а хоть одна цифра, что тогда? Ответ предлагаю поискать самостоятельно.
И можно узнать, зачем в конце поисковой строки понадобился символ доллара?
А по регуляркам конкретно для TC (специфику учитывать необходимо!), ИМХО, достаточно раздела в справке. Ссылка на источник там внутри есть. В своей книге по TC мы этот материал излагали, надеемся, несколько попродробнее и попонятнее, можно и туда заглянуть, если попадётся.

Добавлено: Вс июл 03, 2011 17:01
svshilo
Avada
А если в расширении не сплошные буквы, а хоть одна цифра, что тогда?
На ум с цифрами в типе видео файлов приходит только "mp4". У меня нет файлов такого типа в каталогах, требующих переименования файлов. В основном AVI, mpg, mpeg, divx.

Хотя думаю, что для переименования имён файлов с цифрами в расширении будет достаточно в группу символов добавить диапазон цифр от 0-9 и всё.
Например: (\.[a-zA-Z0-9]{3,}$)
И можно узнать, зачем в конце поисковой строки понадобился символ доллара?
$ - это символ конца строки. Как в моей ситуации обойтись без него я не знаю.
у меня попадаются файлы с именами, части которых разделены не пробелом или нижним подчёркиванием или подобными символами, а разделены точкой, т.е.: priklyoucheniya.avianosca.mpg
Если убрать символ конца строки, то регулярка, ясно дело, найдёт первое вхождение искомого выражения и это будет ".avi", а ни как не ".mpg".
Получается что выражение (\.[a-zA-Z0-9]{3,}$) ищет именно последнюю с конца группу символов после точки, включая саму точку, тогда точно будет найдено именно расширение файла, а не часть имени.
Хотя я выражения только начинаю изучать, поэтому могу понимать не правильно. Но на моих списках файлов это выражение работает.

Спасибо за ссылки!

Добавлено: Вс июл 03, 2011 17:27
Flasher
svshilo писал(а):На ум с цифрами в типе видео файлов приходит только "mp4".
032, 263, 264, 3gz, 3gp, 3gp2, 3gpp, 3gpp2, 3mm, 3p2, 44, 4xm, 603, 60d, 800, am2, am4, am5, am6, am7, c2r, d2v, d3v, dc8, demo4, es3, ev2, f4v, g64, h-263, h263, h263+, h264, h3r, h4v, k3g, l32, m15, m1pg, m1s, m1v, m21, m2p, m2s, m2t, m2ts, m2v, m3a, m4e, m4f, m4u, m4v, m65, mj2, mjp2, mk3d, mkv3d, mp0, mp21, mp2v, mp4, mp4v, mpeg1, mpeg2, mpeg4, mpg2, mpg4, mpv2, mt2s, mv4, mv85, mv93, mv95, p64, sdr2, st4, tdt2, ts4, vc1, vp3, vp6, vp7, w32, w3d, wm3, wp3.

Добавлено: Вс июл 03, 2011 18:20
svshilo
Flasher"
у меня таких форматов нет.
(\.[a-zA-Z0-9]{3,}$) должно сработать на все эти типы. По крайней мере шесть разных типов попробовал - срабатывает на ура.

[mod="Avada"]Пост отредактирован. ненужное цитирование убрано.[/mod]

Добавлено: Вс июл 03, 2011 18:26
Flasher
Я про ум и цифры, а не то, что есть или нет.
Изучаем правила.

Добавлено: Пн июл 04, 2011 10:22
Batya
svshilo писал(а):(\.[a-zA-Z0-9]{3,}$) должно сработать на все эти типы.
Расширение может быть менее 3 символов. Наверное, более правильно

Код: Выделить всё

(\.[^\.]+)$

Добавлено: Пн июл 04, 2011 16:25
Lev
Моя вариация:
s\d+e0*(\d+).*\.(.*?)$
$1.$2
[v] RegEx [v] Subst

Добавлено: Вт июл 05, 2011 02:34
svshilo
Batya писал(а):

Код: Выделить всё

(\.[^\.]+)$
Спасибо, вот то что нужно, коротко, изящно и функционально.
Сохраню этот кусочек на будущее для расширений.