Как стать автором
Обновить

Комментарии 16

Мне кажется, что вас ждет много сюрпризов, когда у вас появятся файлы с несколькими точками в имени.
Ну да, это не учел.
Но Тут подразумевается, что миниатюры делались массово в каком-нибудь редакторе типа ACDsee, где можно их имен файлов такое убрать. Опять же, есть команда REN, там тоже точки убрать можно.
Понятно. Разберусь, как это работает, допилю в статью.
Спасибо!
Скрытый текст
^ вне [] — начало строки
^ внутри [] — отрицание
$ — конец строки
* — 0 и более символов
+ — 1 и более символ
. — любой символ
\. — символ точки
() — Выделение (Selection)

т.о. получается
^ НачалоСтроки
(.*) Любые символы, выделить
\. Символ точки
([^\.]+) 1 или более (+) символов, которые попадают под определение «Не символ \. (Точка)», выделить
$ Конец строки
Очень рекомендую Шпаргалку по RegEx от ныне покойного сайта ILoveJackDaniels.com. Там основные принципы. Некоторые отсутствуют (такие, как Named Selections или возвратные (или как их там) условия), некоторые неприменимы в некоторых RegEx-процессорах, но в целом очень просто и понятно.
Да, видел ее. Но особо не изучал. Больше на SourceForge смотрел.
Я вот отсюда, начал разбираться с регексом.
Довольно простым языком написано.
Хорошо Вам, а я английскую версию вот этой статьи застал/изучал, а после заражения некоторого волшебного периода времени — `man egrep' и `info egrep' %)
В Total Commander есть команды cm_CopyNamesToClip и
cm_CopyFullNamesToClip. Я их себе назначил на Ctrl-G и Ctrl-Shift-G, и давно позабыл про подобные ухищрения c dir.

Кстати, в том же Sublime Text есть мультивыделение, которое позволяет делать многое вообще без регулярок.

Минусы: обе эти утилиты, к сожалению, платные.
Ну у Sublime Text вечный триал…
Нее, я не настолько продвинутый :)
Но спасибо, попробую разобраться.
Не то чтобы это был продвинутый пример. Скорее это «извращение».

Попробуйте еще это. Можно использовать как шаблон для маленьких задачек на jscript. Сохраните файл с расширением bat (или cmd) и запустите из консоли).

@if (true == false) @end /*!
@echo off

dir /b /a-d | cscript //e:javascript //nologo "%~f0"

goto :EOF

*/

var stdin = WScript.StdIn;

while ( ! stdin.AtEndOfStream ) {
	var line = stdin.ReadLine()
		.replace(/(.*)(\..*)?/, '<a href="putj\\$1$2"><img src="putj\\$1_small$2" alt="$&"></a>');
	WScript.Echo(line);
}

Спасибо.

Это все уже посложнее. Я изначально хотел описать настолько простую задачу, чтобы с нее можно было начать учиться.
Наверное, разбирая что-то такое можно написать и второую часть статьи.
Добавил пару изменений в статью.
Благодарю за комментарии.
Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации

Истории