Comments 16
Мне кажется, что вас ждет много сюрпризов, когда у вас появятся файлы с несколькими точками в имени.
^(.*)\.([^\.]+)$
Что-то вроде того будет лучше — отрезаеся часть до _последней_ точки и после _последней_ точки
Понятно. Разберусь, как это работает, допилю в статью.
Спасибо!
Спасибо!
Скрытый текст
^ вне [] — начало строки
^ внутри [] — отрицание
$ — конец строки
* — 0 и более символов
+ — 1 и более символ
. — любой символ
\. — символ точки
() — Выделение (Selection)
т.о. получается
^ НачалоСтроки
(.*) Любые символы, выделить
\. Символ точки
([^\.]+) 1 или более (+) символов, которые попадают под определение «Не символ \. (Точка)», выделить
$ Конец строки
^ внутри [] — отрицание
$ — конец строки
* — 0 и более символов
+ — 1 и более символ
. — любой символ
\. — символ точки
() — Выделение (Selection)
т.о. получается
^ НачалоСтроки
(.*) Любые символы, выделить
\. Символ точки
([^\.]+) 1 или более (+) символов, которые попадают под определение «Не символ \. (Точка)», выделить
$ Конец строки
Очень рекомендую Шпаргалку по RegEx от ныне покойного сайта ILoveJackDaniels.com. Там основные принципы. Некоторые отсутствуют (такие, как Named Selections или возвратные (или как их там) условия), некоторые неприменимы в некоторых RegEx-процессорах, но в целом очень просто и понятно.
Да, видел ее. Но особо не изучал. Больше на SourceForge смотрел.
Хорошо Вам, а я английскую версию вот этой статьи застал/изучал, а после заражения некоторого волшебного периода времени —
`man egrep'
и `info egrep'
%)В Total Commander есть команды
Кстати, в том же Sublime Text есть мультивыделение, которое позволяет делать многое вообще без регулярок.
Минусы: обе эти утилиты, к сожалению, платные.
cm_CopyNamesToClip
и cm_CopyFullNamesToClip
. Я их себе назначил на Ctrl-G и Ctrl-Shift-G, и давно позабыл про подобные ухищрения c dir.Кстати, в том же Sublime Text есть мультивыделение, которое позволяет делать многое вообще без регулярок.
Минусы: обе эти утилиты, к сожалению, платные.
for /f "tokens=*" %f in ( 'dir /b /a-d' ) do @(echo:^<a href="putj\%~f"^>^<img src="putj\%~nf_small%~xf" alt="%~f"^>^</a^>)
Нее, я не настолько продвинутый :)
Но спасибо, попробую разобраться.
Но спасибо, попробую разобраться.
Не то чтобы это был продвинутый пример. Скорее это «извращение».
Попробуйте еще это. Можно использовать как шаблон для маленьких задачек на jscript. Сохраните файл с расширением bat (или cmd) и запустите из консоли).
Попробуйте еще это. Можно использовать как шаблон для маленьких задачек на 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);
}
Добавил пару изменений в статью.
Благодарю за комментарии.
Благодарю за комментарии.
Sign up to leave a comment.
Regex и Win cmd, простенький пример