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

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

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

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

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

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

Сообщение Flasher »

Ostap Fender
1. См. опцию "Верхний/нижний регистр".
2. Найти: ^[^\s]*\s+
3. [?|:"<>/*\\]
Последний раз редактировалось Flasher Ср дек 13, 2017 01:40, всего редактировалось 2 раза.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
Ostap Fender
Сообщения: 35
Зарегистрирован: Пн июн 19, 2017 16:21

Сообщение Ostap Fender »

Flasher писал(а):1. Найти: ^[^\s]*\s+
2. [?:"<>/*\\]
1.На что заменить это? на "пусто"?
Был еще и второй вопрос по переименованию. Варианта нет? Или вопрос не понятно сформулирован?
Аватара пользователя
Avada
Сообщения: 10541
Зарегистрирован: Пт авг 01, 2008 16:17
Откуда: Россия, Саратов

Сообщение Avada »

Ostap Fender
Нумерованных вопросов было два. Третий — это про запрещённые символы в имени файла в архиве? На него имею встречный вопрос: а в подобных архивах средствами TC вообще поиск выполняется?
Даже самая богатая фантазия
Не представит себе наши безобразия.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Ostap Fender
Исправил пункты. Первый не увидел. В 2 — по умолчанию, <пусто>.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
Ostap Fender
Сообщения: 35
Зарегистрирован: Пн июн 19, 2017 16:21

Сообщение Ostap Fender »

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

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

Сообщение Flasher »

Ostap Fender писал(а):_ [space] пробел (только в конце имени)
. [dot] точка (только в конце имени)
Тут нет запрета. _ используется в системных резервных cab-ах. А точка на конце просто игнорируется.
Ostap Fender писал(а):в угловых скобках
Вообще-то квадратных. Угловые выглядят так: ⟨ ⟩.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
BeardFury78
Сообщения: 213
Зарегистрирован: Чт авг 25, 2016 05:24

Сообщение BeardFury78 »

Негативные опережающие проверки не поддерживаются? Просто хочу найти файлы в Тотале вот этой регуляркой:

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

^(?!(tumblr_|\d\d\d\d\d\d+)).
В ответ выдает, что неверное имя файла. Если убрать ?!, то поиск идет, но результат, понятно, не тот, что нужен. Может есть альтернативная регулярка? Нужно найти все, что не содержит в начале несколько цифр или слова tumblr_.
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

BeardFury78
А если использовать Поиск с плагинами на вкладке Плагины?
Плагин: tc
Свойство: Имя
Операция: !Рег.выраж.
Значение: tumblr_|\d\d\d\d\d\d+
BeardFury78
Сообщения: 213
Зарегистрирован: Чт авг 25, 2016 05:24

Сообщение BeardFury78 »

sa
Ок, это решило задачу. Только в начале надо ставить ^ и потом скобку ( и скобку ) в конце.

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

Avada
Мне не нужно найти файлы, которые содержат от 6 цифр и больше в начале имени.
Аватара пользователя
Avada
Сообщения: 10541
Зарегистрирован: Пт авг 01, 2008 16:17
Откуда: Россия, Саратов

Сообщение Avada »

BeardFury78
Я убрал своё сообщение, увидев, что ответ уже дан (хотя и с менее точным синтаксисом). А 6 и более цифр можно указать короче: ^(tumblr_|\d{6,})
Даже самая богатая фантазия
Не представит себе наши безобразия.
SaDim
Сообщения: 18
Зарегистрирован: Вс май 22, 2011 22:28

Сообщение SaDim »

Помогите, пожалуйста.
Синтаксис (Регулярное выражение) для поиска номера телефона в файлах.
Номера телефонов может быть разных форматов xxxxxxx, xx-xx-xxx, xxx-xx-xx, xxx-xxxx, возможно и другие формы из цифр и "-" (мало вероятенно но возможно ещё пробелы).
Существует ли универсальный способ (поиск по части номера), типа задаешь только цифры а поиск идет игнорируя "-" и пробелы.
Спасибо.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

SaDim писал(а):возможно и другие формы из цифр
(\d[- ]?){7}
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
SaDim
Сообщения: 18
Зарегистрирован: Вс май 22, 2011 22:28

Сообщение SaDim »

Flasher, я может не правильно выразился.
Имеется куча txt файлов с разным текстом и разными номером телефона в этом тексте.
Нужно найти файл с нужным телефоном даже по куску номера.
Пример файл с таким содержанием: привет тел. 123-54-76
Даю поиск 47 и нахожу этот файл, если файлов много с похожим номером, даю 547, или 476, если и так много то ищу 5476 ну и так далее.
Flasher
Огромное Спасибо за 1[- ]?2[- ]?3[- ]?5[- ]?4, который раз выручаете.
Последний раз редактировалось SaDim Пн ноя 25, 2019 17:06, всего редактировалось 3 раза.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

SaDim
Т.е. по части конкретного номера, а не шаблона (xxx наталкивает).
1[- ]?2[- ]?3[- ]?5[- ]?4
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
CaptainFlint
Сообщения: 6239
Зарегистрирован: Вт дек 14, 2004 22:34
Контактная информация:

Сообщение CaptainFlint »

[mod="CaptainFlint"]SaDim
Пожалуйста, не отвечайте на следующий пост путём правки предыдущего. Это осложняет чтение для других участников.[/mod]
Почему же, ё-моё, ты нигде не пишешь "ё"?
Ответить