К ТСКВ: примеры регулярных выражений

Обсуждение Total Commander. Установка, использование, настройка, решение проблем, скрытые функции. Обсуждение новых версий.

Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер

Как часто вы пользуетесь регулярными выражениями (RegEx)?

Раз в день
36
34%
Раз в неделю
20
19%
Раз в месяц
29
27%
А что это такое?
21
20%
 
Всего голосов: 106

Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

NordicSaga
А какие проблемы с поиском в разных папках? Выделить их перед поиском проблема?
Что вкладывается в понятие дубликат в отношении каталогов?
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
NordicSaga
Сообщения: 14
Зарегистрирован: Пт апр 07, 2017 01:06
Откуда: Камчатка

Сообщение NordicSaga »

Хорошо. Попытаюсь объяснить свою проблему.

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

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

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

-----------
Дубликат папки - папка, наименование которой частично совпадает с наименованием другой папки. Содержимое таких папок всегда разное.
В моем случае всегда в наименовании папок-дубликатов совпадают символы, начиная с первого и заканчивая комбинацией: "нижние подчеркивание", "год", "пробел", "тире", "пробел".
Последний раз редактировалось NordicSaga Пт апр 07, 2017 06:02, всего редактировалось 1 раз.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

В TС9+ после выделения папок MP3 и LL с вызовом диалога отмечаем Everything.
Перед запуском пишем ev:folder:dupe:regex:^\w+_\d{4}\s-\s в "Искать файлы:".
Чтобы искать одиночные папки, перед dupe нужно ! поставить. Синтаксис тут.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
NordicSaga
Сообщения: 14
Зарегистрирован: Пт апр 07, 2017 01:06
Откуда: Камчатка

Сообщение NordicSaga »

Спасибо.
Что такое "TC9+"? Какая-то версия Total Commander?
Аватара пользователя
Avada
Сообщения: 10541
Зарегистрирован: Пт авг 01, 2008 16:17
Откуда: Россия, Саратов

Сообщение Avada »

NordicSaga
9.0 и выше. Стандартное обозначение.
Даже самая богатая фантазия
Не представит себе наши безобразия.
NordicSaga
Сообщения: 14
Зарегистрирован: Пт апр 07, 2017 01:06
Откуда: Камчатка

Сообщение NordicSaga »

Avada
Вас понял.

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

Картинка
Последний раз редактировалось NordicSaga Пт апр 07, 2017 09:01, всего редактировалось 1 раз.
Аватара пользователя
Avada
Сообщения: 10541
Зарегистрирован: Пт авг 01, 2008 16:17
Откуда: Россия, Саратов

Сообщение Avada »

NordicSaga
Замечание за нарушение правил форума. Неформатная картинка (вдобавок абсолютно ненужная) заменена ссылкой.
Даже самая богатая фантазия
Не представит себе наши безобразия.
NordicSaga
Сообщения: 14
Зарегистрирован: Пт апр 07, 2017 01:06
Откуда: Камчатка

Сообщение NordicSaga »

Прошу прощения.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

NordicSaga
А где выделение каталогов, о котором я писал? Без выделения будет искать по всем дискам.
Строку лучше так записать: ev:folder:dupe:regex:^[.\s\wА-я]+?\S_\d{4}\s-\s.+
Но хочу заметить, что без указания конкретных символов спереди назвать это поиском "дубликатов" язык не повернётся. Сортировка, конечно, будет (хотя её и так потом в панели можно сделать), но в общий лист попадут совпадения по выражению, а не группами как, например, при поиске дубликатов файлов инструментом ТС на второй вкладке (хотя и там это не поможет с появлением поддержки каталогов). Пользу по сравнению с обычным поиском по выражению можно увидеть разве что в упомянутом !.
Последний раз редактировалось Flasher Сб апр 08, 2017 05:58, всего редактировалось 1 раз.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
NordicSaga
Сообщения: 14
Зарегистрирован: Пт апр 07, 2017 01:06
Откуда: Камчатка

Сообщение NordicSaga »

Выделил только нужные каталоги. Попробовал оба варианта поискового запроса - ничего не найдено.
Прям беда какая-то
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Так я же написал, что можно использовать только выражение или добавить !.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
NordicSaga
Сообщения: 14
Зарегистрирован: Пт апр 07, 2017 01:06
Откуда: Камчатка

Сообщение NordicSaga »

Что значит "использовать только выражение"? Какое? Где? Как?
Этот знак ! я также добавлял перед словом 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
Первые (полностью совпадающие друг с другом) части наименований папок-аналогов выделены жирным шрифтом, вторые (отличные друг от друга) части - красным цветом.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Пояснил же, что вывод групповых совпадений возможен только при указании совокупности конкретных начальных символов, а не некого множества в заданном диапазоне.
Т.е. в вашем случае ("всех их вводить в строку поиска просто нереально") это недостижимо, и вывод возможен только общим списком.
Создал точно такие же каталоги, отметил атрибут Каталог и при поиске только по выражению ^[.\s\wА-я]+\S_\d{4}\s-\s.+ нашёл нужное.
Похожий случай будет и с ev:folder:regex:^[.\s\wА-я]+\S_\d{4}\s-\s.+. Об этом шла речь.
Отсортировать по имени - не проблема, далее уже ручная работа с отсевом одиночников, запоминанием выделения, инверсией и т.д.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
NordicSaga
Сообщения: 14
Зарегистрирован: Пт апр 07, 2017 01:06
Откуда: Камчатка

Сообщение NordicSaga »

Правильно ли я делаю?
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 ничего не находит. По-моему, даже вообще не пытается ничего искать. Сразу пишет: "Искомые файлы не найдены".
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

3) В одном случае ставится атрибут и флаг "Рег. выраж.", в другом нет.
Сам я пользуюсь последней бетой Everything.
4) После установки флага, значок программы должен отображаться в области уведомлений.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Ответить