Страница 1 из 1

поиск текста в файле

Добавлено: Ср июн 21, 2006 19:01
Алексей Фролов
Подскажите, есть ли в ТС возможность искать по нескольким словам (чтобы находились файлы содержащие одно или несколько из слов). Или может существует какой-нибудь плагин?

Добавлено: Ср июн 21, 2006 19:34
funduk
Как вариант могу посоветовать написать так:

слово1(.*)слово2(.*)слово3
и поставить галочку у регулярных выражений.

Добавлено: Ср июн 21, 2006 19:48
funduk
Ну или такой вариант (учитывает, что это именно слова, а не части слов):

(\s)*слово1(\s)*(.*)(\s)*слово2(\s)*

В справке есть более менее полное описание регулярных выражений. Замечательная вещь.

Добавлено: Ср июн 21, 2006 20:00
CaptainFlint
funduk
Позанудствую малость. :D
Как твой второй вариант запретит найти, скажем, одно такое слово: "слово1слово2"? ;) Я уж не говорю о том, что порядок слов может быть разным...

Алексей Фролов
Думаю, проще всего делать так: сначала выполнить поиск по одному слову, забросить результаты на панель, выделить все файлы, снова открыть диалог поиска, выполнить поиск файлов, содержащих второе нужное слово (проверить, что опция "Только в выделенных файлах" активирована), ну и так далее, если слов больше, чем 2.

Добавлено: Ср июн 21, 2006 20:37
funduk
CaptainFlint писал(а):Как твой второй вариант запретит найти, скажем, одно такое слово: "слово1слово2"?
Там, вроде, \s должно было бы сработать, если бы я вместо * + бы написал :)
Я уж не говорю о том, что порядок слов может быть разным...
Ну, это да :lol:
Думаю, проще всего делать так: сначала выполнить поиск по одному слову, забросить результаты на панель, выделить все файлы, снова открыть диалог поиска, выполнить поиск файлов, содержащих второе нужное слово (проверить, что опция "Только в выделенных файлах" активирована), ну и так далее, если слов больше, чем 2.
Способ универсальный, но мой мне нравится тем, что при известном порядке (или если слова чередуются) требует одного запроса.

Re: поиск текста в файле

Добавлено: Ср июн 21, 2006 22:45
Volniy
Я тоже побрюзжу немножко :roll: . Искать текст с помощью регулярных выражений можно только внутри одной строки текста
...the program only supports searching within one line (с) Ghisler, TC Help file
Так что такое выражение, как

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

слово1(.*)слово2(.*)слово3
не будет работать если слова находятся в разных строках, хотя и последовательно.

Добавлено: Ср июн 21, 2006 22:50
funduk
Чёрт, чой-то я этого в русской справке не углядел...
А с (\n)* работает?

Добавлено: Чт июн 22, 2006 01:55
Volniy
funduk писал(а):Чёрт, чой-то я этого в русской справке не углядел...
А с (\n)* работает?
В русской справке тоже есть:

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

Прочие модификаторы неприменимы для Total Commander, поскольку программа поддерживает только поиск в пределах одной строки.
А что должно работать-то с (\n)* ? Я чет не понял :(
Вообще \n работает только если оно в конце или в начале(!) регулярного выражения. Только ведь для этих целей и так есть метасимволы начала (^) и конца ($) строки. Нафик не надо нам это \n ...

Добавлено: Чт июн 22, 2006 10:21
funduk
Нда, с разрывами строк не получается...