К ТСКВ: примеры регулярных выражений
Select messages from
# through # FAQ
[/[Print]\]

Total Commander -> Общие вопросы
Как часто вы пользуетесь регулярными выражениями (RegEx)?
Раз в день
35%
 35%  [ 33 ]
Раз в неделю
18%
 18%  [ 17 ]
Раз в месяц
26%
 26%  [ 25 ]
А что это такое?
19%
 19%  [ 18 ]
Total Votes : 93


#1: К ТСКВ: примеры регулярных выражений Author: ВахмуркаLocation: Большая деревня Москва PostPosted: Fri Mar 31, 2006 20:28
    —
Не знаю как другим, но мне довольно редко приходится пользоваться регулярными выражениями в поиске. Тем не менее, приходится все-таки. Не имея достаточно опыта в этом деле и не чувствуя регэкспы "печенкой", я поступаю следующим образом. Создаю текстовый файл, где в столбик перечисляю все строки, которые хочу найти, а также кое-чего из того, что найти не хочу. Потом вызываю поиск, ставлю птицу RegEx и пробую. Иногда долго.

В один прекрасный момент я подумал - а не создать ли файлик с удачными примерами, чтобы потом, при похожей задаче, действовать по принципу "внешних аналогий". Те примеры, что приведены в справке ТС, и даже в описаниях с http://anso.da.ru, описывают лишь 1% возможных случаев. А регулярные выражения - тема мощная, сложная и многогранная, сколько примеров ни приведи, все равно мало будет. Но курочка по зернышку клюет...

Упомянутый мой файлик с примерами растет медленно (говорю же, редко пользуюь), но все-таки растет. И вот я подумал - а не добавить ли в ТСКВ много примеров, чтобы ими пользовались все - ведь даже знатоку зачастую проще взять готовый велосипед, чем изобретать свой.

Приведу один пример. Однажды мне понадобилось найти в файлах рассылок описание утилиты, которая создает список поддиректорий. Вот какие строки я искал:
Code:

список директори
списки директори
списка директори
список папок
списки папок
списка папок
список поддиректори
списки поддиректори
списка поддиректори
список подпапок
списки подпапок
списка подпапок

И вот какое регулярное выражение я подобрал, чтобы это описать:

спис(ок|ки|ка)\s(под|)(директори|пап)

Предлагаю всем, обладающим хоть малым опытом в этом деле, указанным опытом поделиться.


Last edited by Вахмурка on Fri Mar 31, 2006 21:33; edited 1 time in total

#2:  Author: CaptainFlintLocation: Москва PostPosted: Fri Mar 31, 2006 21:10
    —
Пользуюсь, бывает, и чаще, чем раз в день. Тоталовские как-то не очень, гораздо мощнее и привычнее синтаксис EmEditor'а. Список, пожалуй, привести не могу, т.к. составляю каждый раз выражение "на лету", и очень редко использую одни и те же выражения по нескольку раз. Парочку периодически используемых всё же приведу.

1. Совсем простое: удалить все пустые строки.
Найти: \n\n
Заменить на: \n

2. Поиск всех повторяющихся строк (и, возможно, удаление дубликатов):
Найти: ([^\n]+)\n\1\n
Заменить на: \1\n

Дальше сами. Smile

#3:  Author: Lamer PostPosted: Fri Mar 31, 2006 21:20
    —
Кажется, это http://www.westbyte.com/dm/index.phtml?page=faq_re_ru&lng=Russian имеет непосредственное отношение к subj.

#4:  Author: ВахмуркаLocation: Большая деревня Москва PostPosted: Fri Mar 31, 2006 21:31
    —
2CaptainFlint
Я все-таки имел в виду регулярные выражения в Total Commander Smile. EmEditor - замечательнй редактор (с твоей же подачи), но для него есть свой форум.

2Lamer
По ссылке в моем посте (или см. ссылку в справке по ТС, RegEx) можно скачать hlp-файл, с которым приведенная тобой ссылка совпадает. Я в своем ТС всегда в оффлайне, поэтому читаю не интеренет-страничку, а hlp-файл. И даже там примеров маловато.

#5:  Author: Lamer PostPosted: Fri Mar 31, 2006 21:50
    —
Прошу прощения,не заметил.Действительно то же самое.Pardon.

#6:  Author: CaptainFlintLocation: Москва PostPosted: Fri Mar 31, 2006 22:00
    —
Вахмурка
Quote:
Я все-таки имел в виду регулярные выражения в Total Commander

А, ну тогда так и надо было говорить. Smile

#7:  Author: ВахмуркаLocation: Большая деревня Москва PostPosted: Fri Mar 31, 2006 22:48
    —
А я так и сказал: ТСКВ - это Total Commander Knowledge Base, не так ли? Smile

#8:  Author: Lev PostPosted: Tue Apr 04, 2006 15:00
    —
Некоторые примеры можно посмотреть в Regexp Content Plugin

#9:  Author: D1PLocation: Москва PostPosted: Thu May 11, 2006 13:28
    —
Гм, судя по всему не очень-то активно люди регэкспами пользуются. А ведь действительно - тема, как говорится, не раскрыта, и в TCKB про них написано очень мало. Я регэкспы и сам практически не использую, потому хороший мануал написать не смогу. Может возьмётся кто?

#10:  Author: Lev PostPosted: Thu May 11, 2006 16:46
    —
А что должно быть в мануале окромя того, что есть в упомянутых ссылках?

#11:  Author: D1PLocation: Москва PostPosted: Thu May 11, 2006 17:07
    —
Больше примеров, хороших и разных. Как конкретно их использовать в TC. Как ими пользоваться в MRT.

#12:  Author: Lev PostPosted: Thu May 11, 2006 17:28
    —
Ну, вот, комментарии к некоторым регекспам включенным в образцы упомянутого мной выше плагина

Ищем файлы типа
autobackup_of_aaa.cdr
backup_of_aaa.cdr
aaa.cdr
удаляем autobackup_of_ и backup_of_, добавляем пометку bak в конец
в результате можем отсортировать кореловские файлы так, чтобы бакапы находились рядом с оригиналами
[cdr backup]
Find="(auto)*backup_of_(.*\.cdr$)"
Change="$2 bak"

Ищем файлы с расширением exe, помещаем в колонку цифру "1", после сортировки по данной колонке exe-файлы идут первыми (последними)
[exe files up]
Find="\.(exe)$"
Change="1"
Substitute=1
Others=1

убираем tn_ и _tn в директории со скачанным сайтом, после сортировки имеем рядом оригиналы картинок и их превьюшки
[tn remove]
;removes tn from files like tn_pic1.jpg or pic1_tn.jpg
Find="(tn_|_tn)"

Добавляем ноль к цифре стоящей перед точкой
[file1->file01]
Find="(\D)(\d\.)"
Change="$1\0$2"

Добавляем ноль к одной-двум цифрам стоящим перед точкой
[0]
Find="(\D)(\d{2}\.)"
Change="$1\0$2"
Others=0

Добавляем пару нолей
[00]
Find="(\D)(\d\.)"
Change="$1\00$2"
Others=0

удаляем из имён файлов скачанных с инета цифры стоящие в фигурных, круглых, квадратных скобках
[delete figures in brackets]
Find="(\[|\(|{)\d+(\]|\)|})"

Удаляем tn_, _tn, цифры в квадратных скобках
[tn+]
Find="(tn_|_tn|\[\d+\])"

Переставляем пары цифр, полезно для сортировки файлов имеющих в своём имени дату
[efir]
find="(\d{2})\.(\d{2})\.(\d{2})"
change="$3$2$1"
ParseDirs=1
Substitute=1
others=0

#13:  Author: МоторокерLocation: г. Пермь (читается Перьмь) PostPosted: Fri May 12, 2006 08:14
    —
Приведение MP3 коллекции к общему виду:
Переименование папок с MP3CD дисков с названиями
01 Load (1996) в
Metallica [1996] Load для более внятного вида
Find=\d\d (.*)\((\d\d\d\d)\)
Change=Metallica [$2] $1

Переименование песен внутри этих папок (удаление тире после цифр)
01 - Ain't My Bitch.mp3 в
01 Ain't My Bitch.mp3
Find=^(\d\d) - (.*)
Change=$1 $2

В русской справке к TC непонятно описана работа – информация разбросана. В Word'е например все ясно и наглядно.
Еще бы хорошо как в Word'е выбирать выражения из меню, но там и так компонентов налеплено в кучу.
Чаще в Word'е пользуюсь ими, чем в TC. Приходится два языка выражений знать Smile путаться, и вспоминать, где что.

#14:  Author: НикLocation: Москва PostPosted: Wed Apr 04, 2007 14:38
    —
А как сделать поиск всех файлов в ТК, в именах которых есть что-то ещё, кроме латиницы (стандартной, нерасширенной), кириллицы русской, пробелов и подчерков?

Я пробовал вот это:
(\S|\W) - русские буквы не считает за буквы
[^a-zA-Zа-яА-Я\s_] - не работает
([^a-zA-Zа-яА-Я _]+) - не работает

Никто не подскажет?
Что-то когда-то проскакивало, но в он-лайн базе по ТК я не нашёл...

#15:  Author: CaptainFlintLocation: Москва PostPosted: Wed Apr 04, 2007 14:50
    —
Ник wrote:
[^a-zA-Zа-яА-Я\s_] - не работает

Почему не работает? Нормально работает. Только точку (разделитель имени и расширения) тоже считает за искомый символ (и правильно, в общем-то, делает. Надо точку с расширением вынести за пределы выражения).

#16:  Author: НикLocation: Москва PostPosted: Wed Apr 04, 2007 15:16
    —
Code:
[^a-zA-Zа-яА-Я\s_0-9]

я это пишу в "Поиск с плагинами" и ставлю "Искать только в имени" и "regex"...

Вроде пока работает...

#17:  Author: CaptainFlintLocation: Москва PostPosted: Wed Apr 04, 2007 15:30
    —
Ник wrote:
я это пишу в "Поиск с плагинами" и ставлю "Искать только в имени" и "regex"...

Ну, можно и так, конечно...

#18:  Author: НикLocation: Москва PostPosted: Wed Apr 04, 2007 19:25
    —
Скажите, плз, как найти все файлы, начинающиеся со строчных букв?

Я пишу следующее:
Code:
^[^A-ZА-Я0-9]

но оно не работает - не ищет ничего Sad

#19:  Author: CaptainFlintLocation: Москва PostPosted: Wed Apr 04, 2007 19:37
    —
Попробуй отключить регистро-зависимый поиск. Smile

#20:  Author: НикLocation: Москва PostPosted: Wed Apr 04, 2007 20:19
    —
Пардон, это где?
По-моему, учёт регистра можно включать-выключать только при поиске по содержанию файлов, а не по именам...

Я же ищу через плагин с регеспами - хотя могу и просто поиск с регеспами...

#21:  Author: НикLocation: Москва PostPosted: Wed Apr 04, 2007 20:26
    —
Кстати, есть хитрая задача:

разные деятели шлют новости, часто путая в названиях (и в именах файлов, соответственно) русское С и английское C.
В принципе фиг с ним, но, если такое в самом начале слова, то грубо нарушается сортировка в директориях, что очень неудобно...

Можно ли сделать регесп, который бы искал файлы, на первом месте в именах которых стоит английская C, а потом идёт любая русская буква или стоит любая русская буква через пробел?

Спасибо Smile

#22:  Author: НикLocation: Москва PostPosted: Wed Apr 04, 2007 20:32
    —
CaptainFlint wrote:
Попробуй отключить регистро-зависимый поиск. Smile


Бляха-муха!
У меня в хелпе ТК написано:
Quote:
Модификаторы
Модификаторы используются для изменения поведения регулярных выражений.
(?i) Отключает проверку верхнего/нижнего регистра. В Total Commander это значение включено по умолчанию для имён файлов.
(?-i) Включает проверку регистра.


Что на чём стояло? что включает - а что выключает???

Короче, вот это заработало, ищет файлы, начинающиеся с маленьких букв обоих языков только - поиск без плагинов, но с регеспами:
Code:
(?-i)^[^A-ZА-Я0-9]

#23:  Author: CaptainFlintLocation: Москва PostPosted: Wed Apr 04, 2007 20:32
    —
Ник wrote:
Можно ли сделать регесп, который бы искал файлы, на первом месте в именах которых стоит английская C, а потом идёт любая русская буква или стоит любая русская буква через пробел?

Какие проблемы?
Code:
C ?[а-я]

#24:  Author: НикLocation: Москва PostPosted: Wed Apr 04, 2007 21:56
    —
Точнее:

Code:
^C ?[а-я]


и в поиск с плагинами - в именах файлов, с регеспами.

Только зачем пробел перед знаком вопроса - я так и не понял Sad

#25:  Author: CaptainFlintLocation: Москва PostPosted: Wed Apr 04, 2007 22:20
    —
Ник wrote:
Только зачем пробел перед знаком вопроса - я так и не понял

Ты ж сам писал:
Ник wrote:
или стоит любая русская буква через пробел?

Я так выражение и составил: либо английская "C", после которой сразу русская буква, либо английская "C", за которой пробел, а потом русская буква.

#26:  Author: Alextp PostPosted: Thu Apr 05, 2007 02:06
    —
Ник, ? означает "0 или 1 вхождение пред символа".
Т.е. " ?" означает "пробел есть или пробела нет".

Мой пример: ищу URL'ы. RegEx:
Code:
[a-z]+://[a-z.\d/_]+

#27:  Author: НикLocation: Москва PostPosted: Thu Apr 05, 2007 07:31
    —
Спасибо, мужики Smile
Я просто психологически не воспринял пробел как символ - устал к вечеру...

#28:  Author: НикLocation: Москва PostPosted: Thu Apr 05, 2007 18:54
    —
Поможите, плз Smile

Тут Гугл почему-то путает русский и украинский языки и шлёт некоторые новости с заголовками на украинском.
Мне нужно убрать из них символы, которые ТК и ZIP упорно считают "нелатинскими", т.е.:
i (в чём разница с латинским "i" я не знаю, но она есть)
ї
є


При попытке поиска и замены, ТК меняет все "i" - и украинские, и английские (получается "Lиght" вместо "Light")...
Как их различить и как правильно написать выражение для поиска и замены?

#29:  Author: Alextp PostPosted: Fri Apr 06, 2007 00:28
    —
Ник, в regex можно указывать символ по юникодному коду.
(Не проверял в Тотале!)

Quote:
\a alarm, that is, the BEL character (hex 07)
\cx "control-x", where x is any character
\e escape (hex 1B)
\f formfeed (hex 0C)
\n newline (hex 0A)
\r carriage return (hex 0D)
\t tab (hex 09)
\ddd character with octal code ddd, or backreference
\xhh character with hex code hh
\x{hhh..} character with hex code hhh..

After \x, from zero to two hexadecimal digits are read (letters can be in upper or lower case). Any number of hexadecimal digits may appear between \x{ and }, but the value of the character code must be less than 256 in non-UTF-8 mode, and less than 2**31 in UTF-8 mode (that is, the maximum hexadecimal value is 7FFFFFFF).

#30:  Author: НикLocation: Москва PostPosted: Fri Apr 06, 2007 07:31
    —
Спасибо, конечно, но как этот код для украинской кириллицы определить?!?!

#31:  Author: MaximusLocation: Украина, Кировоградская обл., г. Знаменка PostPosted: Fri Apr 06, 2007 09:28
    —
Ник
Не уверен, но попробуй с такими:
і - B3
ї - BF
є - BA

Quote:
в чём разница с латинским "i" я не знаю, но она есть
Еще бы ее не было. Между латинским "c" и русским "с" разница же есть Smile

#32:  Author: Alextp PostPosted: Fri Apr 06, 2007 11:33
    —
Ник
1. Попробовать варианты Maximus'а
2. Если не помогло: заархивировать файл WinRAR'ом, посмотреть дамп архива UV в hex режиме. Wink

#33:  Author: MaximusLocation: Украина, Кировоградская обл., г. Знаменка PostPosted: Fri Apr 06, 2007 12:02
    —
Alextp
WinRAR при архивировании заменяет буквы "і" и "ґ" на символы подчеркивания. Поэтому не уверен, что что-то можно будет выяснить.

#34:  Author: Alextp PostPosted: Fri Apr 06, 2007 13:28
    —
Maximus, Nick:
как просмотреть коды символов в имени файла:
http://forum.wincmd.ru/viewtopic.php?p=27151#27151

#35:  Author: НикLocation: Москва PostPosted: Fri Apr 06, 2007 17:31
    —
Оказалось всё проще - имена файлов - это имена новостей, которые есть в теле файла, HEX-просмотр дал нужный результат.

Итак, I (укр) это B2, причём, если просто копи-паст - то она не заменяется на I (англ), если через HEX - то заменяется.
В то же время, i (укр) через копи-паст почему-то легко заменяется на i (англ).

Копи-паст ессно не напрямую из The Bat в ТК, а через понимающий Уникод текстовый редактор...

#36:  Author: ВахмуркаLocation: Большая деревня Москва PostPosted: Tue Dec 01, 2009 23:11
    —
Продолжаю собственный проект по сбору различных примеров применения регулярных выражений. Возможно, когда-то кто-то их отсортирует, отредактирует и положит в тихое теплое место (типа ТСКВ)...

Есть файлы типа
Code:
IMG_0075.jpg
IMG_0078.jpg
IMG_0084.jpg
IMG_0526.jpg
Изображение 367.jpg
Изображение в2.jpg
Изображение в4.jpg
Требуется удалить "буквенную" часть имени, то есть получить
Code:
0075.jpg
0078.jpg
0084.jpg
0526.jpg
367.jpg
2.jpg
4.jpg

Ответы:

Rodny:
Найти: (\D)+(\d+\..+)
Заменить: $2

Tol!k:
Найти: (\..+)|\D
Заменить: $1

Моторокер:
Найти: ^\D+
Заменить: <Пусто>

Подробности здесь.

#37:  Author: D1PLocation: Москва PostPosted: Wed Dec 02, 2009 09:01
    —
Вахмурка
А самому в тихое место выложить что мешает?

#38:  Author: ВахмуркаLocation: Большая деревня Москва PostPosted: Wed Dec 02, 2009 10:52
    —
Незнание предмета. Видишь, люди аж три варианта предложили, а я и одного осилить не смог. Хотя с более простыми задачами вроде справляюсь.
Следовательно, моя низкая компетентность не позволит оценить, насколько тот или иной пример сложен/важен/типичен, и т. д. Для такой работы нужен кто-то более подготовленный и подкованный.

#39:  Author: Lev PostPosted: Wed Dec 02, 2009 16:55
    —
Для подкованного многие регекспы покажутся примитивными и он не станет их никуда включать. Тут как раз лучше начинающий-середнячок.

по регекспам
Они сработают на данных в примере файлах, но пользователь может обработать ими все файлы в директории в т.ч. не совсем соответствующие примерам, например без цифр в имени, с несколькими точками, с цифрами перемежающимися буквами. Как уже упоминалось в обсуждении пример от Rodny работает перед первой точкой в имени файла - удалит последовательность нецифр перед цифрами с последующей точкой. Имхо первое экранирование в регекспе излишне. Можно убрать первые скобки и менять на $1, результат действия не изменится. Для меня данный регексп не совсем корректен как пример для обучения.
Пример от Tol!k убъёт все нецифры в имени файла оставив от файлов без цифр в имени только расширения.
Пример Моторокер'а удалит первую примыкающую к началу файла нецифровую последовательность, так же убив имена файлов без цифр.
Ещё раз повторю, что для приведённых примеров имён регекспы сработают правильно, но стоило бы составить более безопасное регулярное выражение.

#40:  Author: Tol!kLocation: Арзамас PostPosted: Thu Dec 03, 2009 00:44
    —
Lev, всё раскритиковал, и ничего не предложил взамен :)
Вахмурка
Самый безопасный вариант, вроде бы, такой (получен из варианта Rodny, как из наиболее безопасного из предложеных)
Найти: ^(\D+)(\d+\..+)
Заменить: $2
=
Найти: ^\D+(\d+\..+)
Заменить: $1

#41:  Author: ВахмуркаLocation: Большая деревня Москва PostPosted: Thu Dec 03, 2009 12:10
    —
2Lev
Вот такого, как ты, я и имел в виду: ты не только можешь составить рег. выр-е, не только разобрать имеющееся, но и сделать выводы о его "безопасности", "универсальности" и т.д. Мне это пока недоступно (а учитывая то, как редко я ими пользуюсь, таковым и останется). Может, возьмешься? Если мой пример не покажется тебе примитивным, включи его. И вообще поиском по форуму можно много полезного найти. Причем если в интернете есть многое, посвященное рег. выр-ям как таковым, вообще, то здесь следует сосредоточиться на рег. выр-ях в именах файлов (пока бог с ним, с текстом). Постоянно мелькают примеры и вопросы: заменить латинское "с" на русское, " " на "_", и т.д.

#42:  Author: RodnyLocation: Могилёв, Беларусь PostPosted: Thu Dec 03, 2009 15:28
    —
Не делайте из еды^Wрегэкспов культа Smile
Универсальность и безопасность — это хорошо, вопросов нет. К этому надо стремиться.
Но чаще всего задачи имеют ряд дополнительных условий, исходя из которых уже и делается вывод о необходимости тех или иных мер.
Если задача разовая, на ограниченном наборе имён, то особого смысла её оптимизировать нету, имхо.
А если это пойдёт как образец для обучения, то тут уже другое отношение.

#43:  Author: ВахмуркаLocation: Большая деревня Москва PostPosted: Thu Dec 03, 2009 15:55
    —
См. заголовок. "Knowledge Base - База знаний" - это что? Сборник готовых рецептов (читай - справочник), или учебник, дающий пищу для размышлений? По хорошему вопрос к D1P, как к автору всего этого безобразия. Мое мнение - на текущий момент скорее учебник, причем хорошо бы ей, базе, таковым и остаться. Следовательно, если Rodny или Lev на примере нескольких случаев изложат курс под рабочим названием "Регулярные выражения в ТС для продвинутых чайников", то "будет так хорошо-хорошо, ну прямо как при царе" ((С) старый анекдот).

#44:  Author: D1PLocation: Москва PostPosted: Thu Dec 03, 2009 16:27
    —
Вахмурка wrote:
По хорошему вопрос к D1P, как к автору всего этого безобразия.

Это будет тем, чем вы это сделаете. Мне тоже ближе концепция учебника, но и готовые решения тоже приветствуются.

#45:  Author: Lev PostPosted: Thu Dec 03, 2009 17:39
    —
Имхо для начала вполне достаточно того, что есть в хелпе Тотала. К сожалению сайт автора реализации регулярных выражений использованных Гислером в Тотале линк на который есть в конце странички [s]умер[/s] у меня не открывается, но чего-то можно раскопать через web.archive.org - тут можно почитать чуть более расширенную информация, причём именно по тому движку, что использует Тотал. А тем кто желает продвинуться, я посоветовал бы почитать - Дж. Фридл "Регулярные выражения". Ну и wiki с остальным интернетом в помощь.

#46:  Author: JKTLocation: Харьков PostPosted: Sat Aug 06, 2011 22:00
    —
Уважаемые, подскажите пожалуйста рэгэксп
Есть имя файла "Имя Фамилия" (без кавычек) , надо переименовать "Фамилия Имя", - переставить слова (разделитель - пробел)
Спасибо

#47:  Author: MVVLocation: Ростов-Дон PostPosted: Sat Aug 06, 2011 23:47
    —
Как вариант, заменить ([^ \.]*) *([^ \.]*)(.*) на $2 $1$3 при установленных галке рег выражения и замены имени целиком (рядом). Предполагается, что имя и фамилия не содержат точек.

#48:  Author: AvadaLocation: Россия, Саратов PostPosted: Sun Aug 07, 2011 00:06
    —
JKT
Другой вариант (расширение обязательно есть, точка только перед ним):
Найти: (.*) (.*)\.
Заменить на: $2 $1\.

#49:  Author: Serge Yolkin PostPosted: Sun Aug 07, 2011 00:11
    —
Или (\S+)\s(\S+)(\..*)$ заменить на $2 $1$3, если пробел только один - между именем и фамилией (доллар в конце добавлен на случай, если все-таки не один, хоть ошибки не будет). А вообще-то, пример на тему "как поменять местами имя и фамилию" - чуть не на каждом сайте по регэкспам...

Добавлено спустя 1 час 2 минуты:

Кстати, есть довольно удобная весч для отладки регэкспов: http://regexpres.narod.ru/calculator.html Сам пользуюсь.

#50:  Author: JKTLocation: Харьков PostPosted: Sun Aug 07, 2011 02:23
    —
MVV
Спасибо!
Все работает!
Avada, Serge Yolkin , большой сенк за участие, другие варианты завтра попробую. Как попробую - отпишусь.
А вообще-то, может сделать отдельную ветку, где будут готовые решения по регэкспам, конкретные примеры? Как тут есть "обсуждения" . Тут обсуждения, а вдругой готовые?
Дело вдругом...... Рэгэкспы ТС и других прог могут по синтаксису отличаться. Я вот, например тэги аудиофайлов редакчу в mp3tag там малость синтаксис отличается. От потому и спросил и там и тут. Smile

P.S.
Вот мои пять копеек в копилку:
Имеем текст "ХХХХ - УУУУ" - Задача: оставить только ХХХХ (разделитель " - " (пробел-дефис-пробел) - часто встречается в тэгах аудио "артист - песня". Задача: оставить только "XXXX". Решение;

(.*?)\s+-.*
$1

#51:  Author: AvadaLocation: Россия, Саратов PostPosted: Sun Aug 07, 2011 08:01
    —
JKT wrote:
А вообще-то, может сделать отдельную ветку, где будут готовые решения по регэкспам, конкретные примеры? Как тут есть "обсуждения" . Тут обсуждения, а вдругой готовые?

В этой теме уже всё вперемешку, такой она, увы, и останется. Сама по себе мысль о разделении здравая, но у нас на разных подфорумах много чего предлагалось разделять, так что будет какая-то очерёдность обсуждения и реализации. Пока предложение принято к сведению.

#52:  Author: Olaf PostPosted: Sat Dec 15, 2012 15:51
    —
Здравствуйте, мне требуется помощь в такой проблеме: нужно использовать подстановочные символы в качестве шаблона для выделения/фильтрации файлов.
Есть папка с файлами, из которых мне нужно выделить
1) те, которые начинаются на 4 цифры, после которых идёт пробел или буква и пробел (например "1234 1234.1st" и "1234b 1234 1234.1st")
2) те, которые начинаются с 5 и более цифр.
пока что я застрял на первом же пункте Confused
пытаюсь написать "\b\d{4}? .", но при этом у меня выделяются и те файлы, которые содержат в себе фрагмент, отделённый пробелом, после которой идёт искомая часть (например файл "abcd 1234 1234.1st")
Что я не так делаю? Как это сделать правильно? Заранее благодарен

#53:  Author: RodnyLocation: Могилёв, Беларусь PostPosted: Sat Dec 15, 2012 16:15
    —
Буквы только латинские?
1) Найти: ^\d{4}[a-zA-Z]?\s
2) Найти: ^\d{5,}

#54:  Author: Olaf PostPosted: Sat Dec 15, 2012 21:03
    —
Rodny, да, так всё работает, спасибо огромное!
upd: а как сделать наоборот - показывать все файлы, кроме этих двух типов?

#55:  Author: AvadaLocation: Россия, Саратов PostPosted: Sat Dec 15, 2012 22:05
    —
C учётом реального содержания этой темы она переносится из "Секретов и советов" в "Общие вопросы". Справочник по регэкспам тут, увы, не получился...

#56:  Author: RodnyLocation: Могилёв, Беларусь PostPosted: Sun Dec 16, 2012 12:57
    —
Olaf wrote:
а как сделать наоборот - показывать все файлы, кроме этих двух типов?

Что-то типа: ^([^0-9]{4}[^a-zA-Z]?\S|[^0-9]{5,}).+

#57:  Author: Olaf PostPosted: Sun Dec 16, 2012 13:48
    —
Rodny, буду пробовать, спасибо ещё раз!

#58:  Author: StrekLocation: Светая Русь PostPosted: Sat Mar 23, 2013 06:21
    —
Как искать ссылки http и https?

#59:  Author: RodnyLocation: Могилёв, Беларусь PostPosted: Sat Mar 23, 2013 13:38
    —
Где? В принципе, найти: "https?://" и т.д.

#60:  Author: StrekLocation: Светая Русь PostPosted: Sat Mar 23, 2013 16:20
    —
Rodny wrote:
Где? В принципе, найти: "https?://" и т.д.

В текстовых файлах

#61:  Author: RodnyLocation: Могилёв, Беларусь PostPosted: Sat Mar 23, 2013 21:32
    —
Например, найти: https?://[^\s"':]+
В скобки добавить всё, чего ещё в ссылке быть не может.

#62:  Author: AvadaLocation: Россия, Саратов PostPosted: Sat May 18, 2013 09:09
    —
Последующая дискуссия об изменении регистра в разных частях имени с помощью инструментария ИГП в текущую тему не вписывается и переносится в тему по ИГП в "Общих вопросах".

#63:  Author: hawk777 PostPosted: Thu Jun 12, 2014 02:04
    —
Блин. на фтп надо найти все файлы где есть хоть одна заглавная буква и перевести в строчный вариант.
Использую поиск с плагинами с запросом такого вида: плагин -> tc, свойство -> имя, операция -> рег. выражение, значение -> (?-i)[A-Z]
Выводит все файлы в каталоге (и с прописными буквами, чего быть не должно). Вопрос: как правильно применять модификаторы?

#64:  Author: CaptainFlintLocation: Москва PostPosted: Thu Jun 12, 2014 02:51
    —
hawk777
Информационные плагины на FTP не поддерживаются, поэтому этот критерий просто игнорируется. В данном случае можно использовать регулярные выражения для поля "Искать файлы" на странице "Общие параметры".

#65:  Author: hawk777 PostPosted: Thu Jun 12, 2014 09:54
    —
CaptainFlint, спасибо. Только заметил галочку рег.выражений, теперь все ок Smile

#66: Регулярные выражения Author: pcherevin PostPosted: Mon Jan 30, 2017 15:56
    —
Подскажите пожалуйста, как правильно составить регулярное выражение в поиске содержимого текстового файла:
Строка находится между кавычками в выражении function="". Например function="СТРОКА".
Нужно найти в такой строке знак ";".

Искомый текст:
Quote:
ыаываыв ываа аыв ыва ываываываываыв ываываыва ываыв
function="парампампам-раттрарр"
лвоашщ вшща шщашщвыо а ыввыоа шщоащыоваш
function="парампампам;раттрарр"
оа щшывшщао ыщвша щ шывшщао ывщшаоывщш
function="парампампам=раттрарр"
щ пващзпщ звпзщваш зщвашпщ звазп зващ

#67:  Author: Aquila PostPosted: Mon Jan 30, 2017 16:22
    —
pcherevin
Попробуй:
Code:
(?<=^function=".*);(?=.*")

#68:  Author: pcherevin PostPosted: Tue Jan 31, 2017 14:27
    —
Aquila
Спасибо.

К сожалению TC не работает с такими регулярками.

P/S/
вроде заработало:
(function=")[^"]*;(")

#69:  Author: AvadaLocation: Россия, Саратов PostPosted: Tue Jan 31, 2017 14:45
    —
pcherevin
Оверквотинг (включая совершенно ненужное цитирование предыдущего поста) на форуме запрещён. Лишнее убрано.

#70:  Author: mxup PostPosted: Mon Mar 06, 2017 22:53
    —
Подскажите пожалуйста регулярное выражение для поиска файлов, содержащих строку, в которой содержаться одновременно слово "POST" и "200"
Хочу в общем найти логи Web Сервера Apache, где был удачный POST

Ну вот я как то так вижу это выражение только не регулярное, а как будто я делаю поиск по файлам: *POST*200*
Только это выражение подходит для поиска названия файлов которые содержать слова POST и 200
А мне нужно чтобы шёл поиск в тексте файлов

#71:  Author: Aquila PostPosted: Mon Mar 06, 2017 23:24
    —
^.*POST.*200.*$

#72:  Author: mxup PostPosted: Mon Mar 06, 2017 23:46
    —
Aquila wrote:
^.*POST.*200.*$

Спасибо!)

#73:  Author: NordicSagaLocation: Камчатка PostPosted: Fri Apr 07, 2017 02:43
    —
Здравствуйте.
Как должно выглядеть регулярное выражение для одновременного поиска в двух разных директориях всех папок с частично совпадающими наименованиями?
Причем, имена папок обязательно совпадают только в пределах, начиная с первого символа в строке и заканчивая неизменным набором символов - "нижнее подчеркивание", "год", "пробел", "тире", "пробел".

Например, нужно, чтобы TC за раз нашел папки-дубликаты муз. альбомов:
G:\LL\Katatonia_2009 - Night Is The New Day
G:\LL\Katatonia_2009 - Night Is... [Limited Edition, Digibook]
G:\MP3\Katatonia_2009 - Night is the new day (LP)
G:\LL\Napalm Death_2015 - Apex Predator - Easy Meat [Japanesse Edition]
G:\MP3\Napalm Death_2015 - Apex Predator - Easy Meat
...

#74:  Author: FlasherLocation: Москва PostPosted: Fri Apr 07, 2017 03:41
    —
'^(Katatonia|Napalm Death)_\d{4} - '

#75:  Author: NordicSagaLocation: Камчатка PostPosted: Fri Apr 07, 2017 03:50
    —
Спасибо. Но, я имел в виду иное.
В моей базе сотни наименований исполнителей. И всех их вводить в строку поиска просто нереально.

Как сделать так, чтобы ТС за раз искал в двух разных директориях (G:\LL\ и G:\MP3\):

1) все альбомы-дубликаты всех имеющихся в базе исполнителей?

2) все альбомы всех имеющихся в базе исполнителей, у которых нет дубликатов?

#76:  Author: FlasherLocation: Москва PostPosted: Fri Apr 07, 2017 04:13
    —
NordicSaga
А какие проблемы с поиском в разных папках? Выделить их перед поиском проблема?
Что вкладывается в понятие дубликат в отношении каталогов?

#77:  Author: NordicSagaLocation: Камчатка PostPosted: Fri Apr 07, 2017 04:37
    —
Хорошо. Попытаюсь объяснить свою проблему.

Храню свою фонотеку на одном диске в двух разных папках.
В папке "LL" находится несжатая музыка (т.н. lossless).
В папке "MP3" - соответственно альбомы с MP3-записями.

Периодически возникает необходимость найти и отобразить в TC (например, с целью последующего редактирования имен) перечень всех одних и тех же альбомов (папок), которые имеются как в директории "LL", та и в директории "MP3".
Например, в директории "MP3" есть папка-альбом "Metallica_1986 - ... ", а в директории "LL" имеются две почти такие же папки-альбомы: "Metallica_1986 - ... [1986 US]" и "Metallica_1986 - ... [1990 DE]", а также еще несколько сотен альбомов с частично совпадающими наименованиями папок, в которых они хранятся .

Или же наоборот. Иногда нужно отобразить только те альбомы (папки), у которых нет папок-дубликатов в одной из этих двух директорий.
Например, нужно отсортировать и вывести на панель просмотра альбомы, хранящиеся в директории "MP3", у которых нет дубликатов в директории "LL".

-----------
Дубликат папки - папка, наименование которой частично совпадает с наименованием другой папки. Содержимое таких папок всегда разное.
В моем случае всегда в наименовании папок-дубликатов совпадают символы, начиная с первого и заканчивая комбинацией: "нижние подчеркивание", "год", "пробел", "тире", "пробел".


Last edited by NordicSaga on Fri Apr 07, 2017 07:02; edited 1 time in total

#78:  Author: FlasherLocation: Москва PostPosted: Fri Apr 07, 2017 05:21
    —
В TС9+ после выделения папок MP3 и LL с вызовом диалога отмечаем Everything.
Перед запуском пишем ev:folder:dupe:regex:^\w+_\d{4}\s-\s в "Искать файлы:".
Чтобы искать одиночные папки, перед dupe нужно ! поставить. Синтаксис тут.

#79:  Author: NordicSagaLocation: Камчатка PostPosted: Fri Apr 07, 2017 07:31
    —
Спасибо.
Что такое "TC9+"? Какая-то версия Total Commander?

#80:  Author: AvadaLocation: Россия, Саратов PostPosted: Fri Apr 07, 2017 08:28
    —
NordicSaga
9.0 и выше. Стандартное обозначение.

#81:  Author: NordicSagaLocation: Камчатка PostPosted: Fri Apr 07, 2017 09:03
    —
Avada
Вас понял.

Flasher
Поставил TC9 и Everything 1.3.4.686.
Сделал далее так, как вы написали.
Результат - ничего не найдено.

Картинка


Last edited by NordicSaga on Fri Apr 07, 2017 10:01; edited 1 time in total

#82:  Author: AvadaLocation: Россия, Саратов PostPosted: Fri Apr 07, 2017 09:23
    —
NordicSaga
Замечание за нарушение правил форума. Неформатная картинка (вдобавок абсолютно ненужная) заменена ссылкой.

#83:  Author: NordicSagaLocation: Камчатка PostPosted: Fri Apr 07, 2017 09:24
    —
Прошу прощения.

#84:  Author: FlasherLocation: Москва PostPosted: Fri Apr 07, 2017 14:16
    —
NordicSaga
А где выделение каталогов, о котором я писал? Без выделения будет искать по всем дискам.
Строку лучше так записать: ev:folder:dupe:regex:^[.\s\wА-я]+?\S_\d{4}\s-\s.+
Но хочу заметить, что без указания конкретных символов спереди назвать это поиском "дубликатов" язык не повернётся. Сортировка, конечно, будет (хотя её и так потом в панели можно сделать), но в общий лист попадут совпадения по выражению, а не группами как, например, при поиске дубликатов файлов инструментом ТС на второй вкладке (хотя и там это не поможет с появлением поддержки каталогов). Пользу по сравнению с обычным поиском по выражению можно увидеть разве что в упомянутом !.


Last edited by Flasher on Sat Apr 08, 2017 06:58; edited 1 time in total

#85:  Author: NordicSagaLocation: Камчатка PostPosted: Sat Apr 08, 2017 02:11
    —
Выделил только нужные каталоги. Попробовал оба варианта поискового запроса - ничего не найдено.
Прям беда какая-то

#86:  Author: FlasherLocation: Москва PostPosted: Sat Apr 08, 2017 03:31
    —
Так я же написал, что можно использовать только выражение или добавить !.

#87:  Author: NordicSagaLocation: Камчатка PostPosted: Sat Apr 08, 2017 05:29
    —
Что значит "использовать только выражение"? Какое? Где? Как?
Этот знак ! я также добавлял перед словом dupe. Всё безрезультатно, хотя делал, как вы указали выше.
Если не трудно, поясните еще раз, что да как, для особо одаренного.

Задачи прежние.
Отсортировать по наименованию в каталогах MP3 и LL и показать на панели все папки (папки-аналоги), у которых первые части наименований* :
1) полностью совпадают друг с другом.
2) полностью или частично не совпадают.
-------------
* Первая часть наименования папки - любой набор символов, начинающийся с самого первого и заканчивающийся комбинацией: "нижние подчеркивание", "год", "пробел", "тире", "пробел".

Примеры папок-аналогов (по наименованию), хранящихся в разных каталогах:
G:\LL\Metallica_1986 - Master Of Puppets [1986 JP] [FPR]
G:\LL\Metallica_1986 - Master Of Puppets [1986 US]
G:\LL\Metallica_1986 - Master Of Puppets [1986 W.Germany for US] [FPR]
G:\MP3\Metallica_1986 - Master Of Puppets
Первые (полностью совпадающие друг с другом) части наименований папок-аналогов выделены жирным шрифтом, вторые (отличные друг от друга) части - красным цветом.

#88:  Author: FlasherLocation: Москва PostPosted: Sat Apr 08, 2017 07:10
    —
Пояснил же, что вывод групповых совпадений возможен только при указании совокупности конкретных начальных символов, а не некого множества в заданном диапазоне.
Т.е. в вашем случае ("всех их вводить в строку поиска просто нереально") это недостижимо, и вывод возможен только общим списком.
Создал точно такие же каталоги, отметил атрибут Каталог и при поиске только по выражению ^[.\s\wА-я]+\S_\d{4}\s-\s.+ нашёл нужное.
Похожий случай будет и с ev:folder:regex:^[.\s\wА-я]+\S_\d{4}\s-\s.+. Об этом шла речь.
Отсортировать по имени - не проблема, далее уже ручная работа с отсевом одиночников, запоминанием выделения, инверсией и т.д.

#89:  Author: NordicSagaLocation: Камчатка PostPosted: Sat Apr 08, 2017 07:39
    —
Правильно ли я делаю?
1) Выделяю в панели сразу две папки (LL и MP3).
2) Открываю в меню "Поиск файлов".
3) В окошко "Искать файлы" вставляю одно из выражений: "^[.\s\wА-я]+?\S_\d{4}\s-\s.+" или "ev:folder:!dupe:regex:^[.\s\wА-я]+\S_\d{4}\s-\s.+".
4) Ставлю галочку у надписи "Everything".
5) Нажимаю кнопку "Начать поиск" и жду результаты.
Если всё так, то мой TC ничего не находит. По-моему, даже вообще не пытается ничего искать. Сразу пишет: "Искомые файлы не найдены".

#90:  Author: FlasherLocation: Москва PostPosted: Sat Apr 08, 2017 13:13
    —
3) В одном случае ставится атрибут и флаг "Рег. выраж.", в другом нет.
Сам я пользуюсь последней бетой Everything.
4) После установки флага, значок программы должен отображаться в области уведомлений.

#91:  Author: NordicSagaLocation: Камчатка PostPosted: Sun Apr 09, 2017 06:07
    —
4) После установки флага, значок программы должен отображаться в области уведомлений.
После установки EverythingА он у меня всё время отображается в нижнем левом углу монитора. Это нормально?
Поставил тоже бету-Everything. Результатов нет.
По первому выражению почему-то находит буквально все папки, имеющиеся как в каталоге MP3, так и в LL. В этом случае я предварительно ставил галочки рядом со словами "Рег, выраж." и "Everything").
По второму выражению вообще ничего не ищет.

#92:  Author: FlasherLocation: Москва PostPosted: Sun Apr 09, 2017 07:01
    —
Выражение тут одно, записи разные. Все папки по нему не могут находиться. Это не '.*'.
Скрины: 1, 2.

NordicSaga wrote:
в нижнем левом углу монитора. Это нормально?
В левом? Или всё же в правом (в области уведомлений, что, естественно, нормально)?

#93:  Author: Liven' PostPosted: Sun Apr 09, 2017 17:45
    —
Есть много файлов с именем типа filename - 001 еще чего-то.mp4...filename - 999 еще чего-то.mp4
из них нужно найти файлы в которых есть например:
filename - 323
filename - 324
filename - 325
filename - 555
filename - 556
filename - 770
filename - 852

#94:  Author: FlasherLocation: Москва PostPosted: Sun Apr 09, 2017 18:11
    —
^filename - \d{3}.+\.mp4$

#95:  Author: Liven' PostPosted: Sun Apr 09, 2017 18:34
    —
Flasher wrote:
^filename - \d{3}.+\.mp4$

а в каком месте и как правильно перечислить цифры?

#96:  Author: Aquila PostPosted: Sun Apr 09, 2017 19:06
    —
Liven'

\d{3} - любые 3 цифры

#97:  Author: FlasherLocation: Москва PostPosted: Sun Apr 09, 2017 19:23
    —
Liven' wrote:
как правильно перечислить цифры?
Т.е. указанные? (32[345]|55[56]|770|852) вместо \d{3}.

#98:  Author: Liven' PostPosted: Sun Apr 09, 2017 19:33
    —
Aquila wrote:
Liven'

\d{3} - любые 3 цифры

Я так и подумал, попробовал так
^filename - \d{323,325,555,556,770,852}.+\.mp4$
не находит
одну цифру тоже
^filename - \d{323}.+\.mp4$
не находит

#99:  Author: Aquila PostPosted: Sun Apr 09, 2017 19:42
    —
Liven'

\d{323} - 323 любые цифры Very Happy
в фигурных скобках - число повторений, Вам уже ответили, я просто неправильно понял Ваш вопрос, сорри

https://msdn.microsoft.com/ru-ru/library/az24scfc(v=vs.110).aspx


Last edited by Aquila on Sun Apr 09, 2017 20:25; edited 1 time in total

#100:  Author: Liven' PostPosted: Sun Apr 09, 2017 20:19
    —
Спасибо всем за помощь такой вариант то что нужно
filename - (32[345]|55[56]|770|852)+\.mp4$

#101:  Author: FlasherLocation: Москва PostPosted: Sun Apr 09, 2017 20:38
    —
Точка перед плюсом пропущена.

P.S. Мир замер в ожидании всыпки за форменный чатофигизм... ©

#102:  Author: AvadaLocation: Россия, Саратов PostPosted: Sun Apr 09, 2017 21:39
    —
Liven'
1. Замечание за нарушение правил форума. Отучайтесь от дурных манер, здесь этого очень не любят.
2. Апостроф в конце ника создаёт проблемы как минимум при его копировании/вставке средствами форума. Вы уверены, что это архитектурное излишество вам жизненно необходимо? Если нет, свяжитесь с админом (CaptainFlint) на предмет правки.

Aquila
См. пункт 1 этого сообщения. Замечание за то же самое.

#103:  Author: NordicSagaLocation: Камчатка PostPosted: Mon Apr 10, 2017 06:21
    —
Flasher wrote:
Выражение тут одно, записи разные. Все папки по нему не могут находиться. Это не '.*'.
Скрины: 1, 2.

Посмотрел ваши скины и удивился.
На первом скине в результатах поиска почему-то вместе с другими отобразилась папка
D:\LL\Me_tallica_1986 - Master Of Puppets [1986 W.Germany for US] [FPR],
первая часть наименования которой (Me_tallica_1986 - ) не совпадает с первыми частями наименований (Metallica_1986 - ) всех остальных найденных папок.
На втором скине присутствует точно такой же перечень найденных папок.
Это как? Ничего не понимаю...

Было бы то, что нужно, если бы поиск:
В первом случае показал бы только три папки (первые части наименований которых полностью идентичны друг другу):
D:\LL\Metallica_1986 - Master Of Puppets [1986 JP] [FPR],
D:\LL\Metallica_1986 - Master Of Puppets [1986 US],
D:\MP3\Metallica_1986 - Master Of Puppets,
исключив из результатов папку
D:\LL\Me_tallica_1986 - Master Of Puppets [1986 W.Germany for US] [FPR],
поскольку первая часть её наименования отлична от первых частей наименований вышеуказанных трёх папок.
Во втором случае отобразил бы только одну папку
D:\LL\Me_tallica_1986 - Master Of Puppets [1986 W.Germany for US] [FPR],
не являющуюся аналогом остальным трём папкам по первой части своего наименования.


Flasher wrote:
В левом? Или всё же в правом (в области уведомлений, что, естественно, нормально)?

Виноват. В правом, конечно.


Last edited by NordicSaga on Mon Apr 10, 2017 06:48; edited 1 time in total

#104:  Author: FlasherLocation: Москва PostPosted: Mon Apr 10, 2017 06:48
    —
Я так понял, что мои объяснения вы проигнорировали. Тогда мне сюда больше нечего добавить. По 10 раз объяснять одно и то же мне неинтересно.

#105:  Author: AvadaLocation: Россия, Саратов PostPosted: Mon Apr 10, 2017 06:49
    —
NordicSaga
Не скины, а скрины. Разницу, надеюсь, объяснять не надо.

#106:  Author: NordicSagaLocation: Камчатка PostPosted: Mon Apr 10, 2017 07:03
    —
Нет, не надо.

Мне бы хотелось, чтобы дали ответ на поставленный вопрос простым понятным языком, желательно с примерами и скринами. Сам я не смогу разобраться в премудростях составления таких поисковых запросов. Или этот форум только для профессиональных пользователей с соответствующей подготовкой?

#107:  Author: FlasherLocation: Москва PostPosted: Mon Apr 10, 2017 07:07
    —
Мои разъяснения касались совсем не составления регулярных выражений, и никакие примеры для этого не требуются.

#108:  Author: NordicSagaLocation: Камчатка PostPosted: Mon Apr 10, 2017 07:10
    —
Хорошо, еще раз все перечитаю.
Спасибо.

#109:  Author: sa PostPosted: Wed Apr 12, 2017 14:48
    —
NordicSaga
Поскольку TC ищет дубликаты среди файлов, а не каталогов, то можно попробовать решить задачу, создав во временной папке (в примере это C:\Temp) каталоги LL и MP3, в которых вместо папок будут расположены файлы с такими же именами. Я воспользовался для этой цели тем, что оказалось под рукой – плагином DiskDir Extended. Операция упаковки файлов (Alt+F5) с помощью этого архиваторного плагина позволила без труда решить задачу трансформации имён папок в имена файлов.
Для поиска дубликатов по началу названий альбомов можно использовать, например, Script Content Plugin.
В папке плагина создать файл albom.vbs:
Code:
Set RegEx = New RegExp
RegEx.Pattern = "(^.+_\d{4} - ).+"
Content = RegEx.Replace(FileName, "$1")
Настроить ini-файл плагина:
Code:
[Script]
Section=albom
[albom]
LongName=0
ParseDirs=1
Script=albom.vbs
В поиске файлов (Alt+F7) на вкладке Дополнительно в поле по данным плагинов: указать [=script.Result]. После вывода файлов на панель удобно пользоваться диалогом выделения дубликатов (Num +). Приведённое на скрине выделение файлов в правой панели можно получить с помощью команд cm_CopyNamesToClip (копировать имена файлов в буфер) в панели с результатами поиска и cm_LoadSelectionFromClip (загрузить выделение из буфера) в папке LL.

#110:  Author: NordicSagaLocation: Камчатка PostPosted: Thu Apr 13, 2017 01:54
    —
sa, спасибо. Обязательно попробую ваш вариант, как только появится время.

#111:  Author: Baltazar PostPosted: Thu May 04, 2017 05:46
    —
Не знаю насколько в тему (если написал не туда перенесите), но решил отписаться здесь.

Недавно возникла ситуация, когда надо было найти файлы без расширений, мне в этом помогла регулярка ^([^.]+)$ . Возможно кому-нибудь пригодится Smile

Если есть лучшее решение данной проблемы - напишите, возьму на вооружение.

#112:  Author: FlasherLocation: Москва PostPosted: Thu May 04, 2017 10:12
    —
Baltazar
Не нужны тут регулярки: *.
И, кстати, круглые скобки в выражении лишние. Атрибут "Каталог", естественно, должен быть снят.

#113:  Author: sa PostPosted: Thu May 04, 2017 16:01
    —
Baltazar
Если вовсе без поиска (как вариант, в виде без подкаталогов), то установить в файловой панели сортировку по типу и/или нажать Alt+Num+ на файле без расширения.

#114:  Author: Baltazar PostPosted: Sat May 06, 2017 08:09
    —
Flasher, действительно, это работает, спасибо.

p.s. С тем что скобки лишние - согласен Wink

sa, имхо это не самыйл лучший вариант, если файлов пара десятков тысяч.

#115:  Author: AvadaLocation: Россия, Саратов PostPosted: Sat May 06, 2017 10:33
    —
Baltazar
Правила форума надо соблюдать постоянно, а не от случая к случаю.

#116:  Author: mr_aleksLocation: Minsk PostPosted: Fri May 12, 2017 05:06
    —
Возможно не туда напишу.
Вопрос, как в строке вида
Quote:
cd \\server\share /user:admin

задать еще и пароль? я понимаю, что это не безопасно, но это лишь для себя
В справке сказано:
Quote:
С помощью параметра /user: (в нижнем регистре!) можно задать логин/пароль для соединения с сетевым каталогом.
Пример: cd \\сервер\каталог /user:имя_пользователя

Как это сделать?

#117:  Author: AvadaLocation: Россия, Саратов PostPosted: Fri May 12, 2017 07:15
    —
mr_aleks
Во-первых, эта цитата не из справки, а, насколько понимаю, отсюда. Там неточность, которая в дальнейшем при переработке таблиц была устранена (но более новая версия этой странички пока не выложена): в команде указывается только логин, пароль вводится потом вручную.
Во-вторых, в том, что это лютый оффтоп, не имеющий к теме вообще никакого отношения, не должно быть никаких сомнений. Что делать, если вы не знаете, куда писать, в правилах сказано. Замечание за нарушение правил форума (далеко не первое).

#118:  Author: videoDVDkhv PostPosted: Mon Jun 05, 2017 08:51
    —
Не могу найти записанный на своем компе лицензионный ключ вида DGBMHUFPHEE-9188. Как записать ЭТО в виде регулярных выражений и попробовать найти в Total Commander?

#119:  Author: FlasherLocation: Москва PostPosted: Mon Jun 05, 2017 10:15
    —
videoDVDkhv
[A-Z]{11}-\d{4}

#120:  Author: Ostap Fender PostPosted: Mon Dec 11, 2017 17:11
    —
Помогите пожалуйста с регулярными выражениями для группового переименования.
1. Начало слов с заглавной, не изменяя слова, в которых минимум 2 заглавных буквы находятся рядом.
(понимаю, что в данном условии есть свои "подводные камни", но в 90% случаев для моих нужд условие подходящее).
Примеры:
WWW putin FX переименовать в WWW Putin FX.
tramp uRod (EE) переименовать в Tramp Urod (EE).
2. Убрать в названии все символы, находящиеся до символа, расположенного после первого пробела (включая и сам пробел(пробелы, если их несколько) не пытаясь изменить названия файлов, в которых первый пробел стоит перед точкой, разделяющей имя и расширение файла - чтобы не вылезло предупреждение.
Пример:
"123аре ллл.тхт" переименовать в "ллл.тхт".
"ук_3ук ууу.wav" переименовать в "ууу.wav".
"еее .ехе" - не пытаться изменить.
Поиск.
Что указать в маске поиска, чтобы найти файлы и папки, в названии которых содержатся запрещённые символы для именования файлов Windows. (такое встречается в архивах .NKX - подробности опустим).

#121:  Author: FlasherLocation: Москва PostPosted: Mon Dec 11, 2017 20:35
    —
Ostap Fender
1. См. опцию "Верхний/нижний регистр".
2. Найти: ^[^\s]*\s+
3. [?|:"<>/*\\]


Last edited by Flasher on Wed Dec 13, 2017 02:40; edited 2 times in total

#122:  Author: Ostap Fender PostPosted: Tue Dec 12, 2017 16:42
    —
Flasher wrote:
1. Найти: ^[^\s]*\s+
2. [?:"<>/*\\]

1.На что заменить это? на "пусто"?
Был еще и второй вопрос по переименованию. Варианта нет? Или вопрос не понятно сформулирован?

#123:  Author: AvadaLocation: Россия, Саратов PostPosted: Tue Dec 12, 2017 16:49
    —
Ostap Fender
Нумерованных вопросов было два. Третий — это про запрещённые символы в имени файла в архиве? На него имею встречный вопрос: а в подобных архивах средствами TC вообще поиск выполняется?

#124:  Author: FlasherLocation: Москва PostPosted: Tue Dec 12, 2017 16:52
    —
Ostap Fender
Исправил пункты. Первый не увидел. В 2 — по умолчанию, <пусто>.

#125:  Author: Ostap Fender PostPosted: Tue Dec 12, 2017 21:41
    —
Avada wrote:

в подобных архивах средствами TC вообще поиск выполняется?
Да выполняется. (Данные архивы создаются с помощью плагина inNKX для ТС). В его описании указано следующее;
UNIX-имена файлов:
Имена файлов и каталогов в контейнерах, созданных на системах под управлением Mac OS, могут содержать запрещённые символы для именования файлов Windows ( \ ? * " | : < > ), поэтому извлечь файлы с такими именами невозможно. inNKX решает данную проблему с помощью управляющих последовательностей запрещённых символов.
Каждому запрещённому символу ставится в соответствие управляющая последовательность символов [в угловых скобках]:
\ [bslash] обратный слэш
? [qmark] знак вопроса
* [star] знак умножения
" [quote] двойная кавычка
| [pipe] вертикальная черта
: [colon] двоеточие
< [less] знак меньше
> [greater] знак больше
_ [space] пробел (только в конце имени)
. [dot] точка (только в конце имени)
При чтении файлов и каталогов контейнера в Total commander передаются имена, в которых все запрещённые символы заменены их управляющими последовательностями (3) . При извлечении на диск пользователь будет предупреждён о том, что имена файлов на диске и в контейнере различаются. При упаковке файла или каталога, имя которого содержит управляющие последовательности, будет выполнено обратное преобразование.

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

#126:  Author: FlasherLocation: Москва PostPosted: Wed Dec 13, 2017 02:43
    —
Ostap Fender wrote:
_ [space] пробел (только в конце имени)
. [dot] точка (только в конце имени)
Тут нет запрета. _ используется в системных резервных cab-ах. А точка на конце просто игнорируется.
Ostap Fender wrote:
в угловых скобках
Вообще-то квадратных. Угловые выглядят так: ⟨ ⟩.

#127:  Author: BeardFury78 PostPosted: Tue Feb 06, 2018 12:46
    —
Негативные опережающие проверки не поддерживаются? Просто хочу найти файлы в Тотале вот этой регуляркой:
Code:
^(?!(tumblr_|\d\d\d\d\d\d+)).

В ответ выдает, что неверное имя файла. Если убрать ?!, то поиск идет, но результат, понятно, не тот, что нужен. Может есть альтернативная регулярка? Нужно найти все, что не содержит в начале несколько цифр или слова tumblr_.

#128:  Author: sa PostPosted: Tue Feb 06, 2018 13:08
    —
BeardFury78
А если использовать Поиск с плагинами на вкладке Плагины?
Плагин: tc
Свойство: Имя
Операция: !Рег.выраж.
Значение: tumblr_|\d\d\d\d\d\d+

#129:  Author: BeardFury78 PostPosted: Tue Feb 06, 2018 13:11
    —
sa
Ок, это решило задачу. Только в начале надо ставить ^ и потом скобку ( и скобку ) в конце.

Добавлено спустя 8 минут:

Avada
Мне не нужно найти файлы, которые содержат от 6 цифр и больше в начале имени.

#130:  Author: AvadaLocation: Россия, Саратов PostPosted: Tue Feb 06, 2018 13:30
    —
BeardFury78
Я убрал своё сообщение, увидев, что ответ уже дан (хотя и с менее точным синтаксисом). А 6 и более цифр можно указать короче: ^(tumblr_|\d{6,})



Total Commander -> Общие вопросы


output generated using printer-friendly topic mod. All times are GMT + 4 Hours

Page 1 of 1

Powered by phpBB © 2001, 2005 phpBB Group