View previous topic :: View next topic |
Author |
Message |
Алексей Фролов
Joined: 21 Jun 2006 Posts: 1
|
(Separately) Posted: Wed Jun 21, 2006 19:01 Post subject: поиск текста в файле |
|
|
Подскажите, есть ли в ТС возможность искать по нескольким словам (чтобы находились файлы содержащие одно или несколько из слов). Или может существует какой-нибудь плагин? |
|
Back to top |
|
 |
funduk

Joined: 16 Aug 2005 Posts: 1513 Location: Санкт-Петербург
|
(Separately) Posted: Wed Jun 21, 2006 19:34 Post subject: |
|
|
Как вариант могу посоветовать написать так:
слово1(.*)слово2(.*)слово3
и поставить галочку у регулярных выражений. |
|
Back to top |
|
 |
funduk

Joined: 16 Aug 2005 Posts: 1513 Location: Санкт-Петербург
|
(Separately) Posted: Wed Jun 21, 2006 19:48 Post subject: |
|
|
Ну или такой вариант (учитывает, что это именно слова, а не части слов):
(\s)*слово1(\s)*(.*)(\s)*слово2(\s)*
В справке есть более менее полное описание регулярных выражений. Замечательная вещь. |
|
Back to top |
|
 |
CaptainFlint

Joined: 14 Dec 2004 Posts: 6193 Location: Москва
|
(Separately) Posted: Wed Jun 21, 2006 20:00 Post subject: |
|
|
funduk
Позанудствую малость.
Как твой второй вариант запретит найти, скажем, одно такое слово: "слово1слово2"? Я уж не говорю о том, что порядок слов может быть разным...
Алексей Фролов
Думаю, проще всего делать так: сначала выполнить поиск по одному слову, забросить результаты на панель, выделить все файлы, снова открыть диалог поиска, выполнить поиск файлов, содержащих второе нужное слово (проверить, что опция "Только в выделенных файлах" активирована), ну и так далее, если слов больше, чем 2. _________________ Почему же, ё-моё, ты нигде не пишешь "ё"? |
|
Back to top |
|
 |
funduk

Joined: 16 Aug 2005 Posts: 1513 Location: Санкт-Петербург
|
(Separately) Posted: Wed Jun 21, 2006 20:37 Post subject: |
|
|
CaptainFlint wrote: | Как твой второй вариант запретит найти, скажем, одно такое слово: "слово1слово2"? |
Там, вроде, \s должно было бы сработать, если бы я вместо * + бы написал
Quote: | Я уж не говорю о том, что порядок слов может быть разным... |
Ну, это да
Quote: | Думаю, проще всего делать так: сначала выполнить поиск по одному слову, забросить результаты на панель, выделить все файлы, снова открыть диалог поиска, выполнить поиск файлов, содержащих второе нужное слово (проверить, что опция "Только в выделенных файлах" активирована), ну и так далее, если слов больше, чем 2. |
Способ универсальный, но мой мне нравится тем, что при известном порядке (или если слова чередуются) требует одного запроса. |
|
Back to top |
|
 |
Volniy

Joined: 15 Dec 2004 Posts: 585 Location: Местный
|
(Separately) Posted: Wed Jun 21, 2006 22:45 Post subject: Re: поиск текста в файле |
|
|
Я тоже побрюзжу немножко . Искать текст с помощью регулярных выражений можно только внутри одной строки текста
Quote: | ...the program only supports searching within one line (с) Ghisler, TC Help file |
Так что такое выражение, как Code: | слово1(.*)слово2(.*)слово3 |
не будет работать если слова находятся в разных строках, хотя и последовательно. |
|
Back to top |
|
 |
funduk

Joined: 16 Aug 2005 Posts: 1513 Location: Санкт-Петербург
|
(Separately) Posted: Wed Jun 21, 2006 22:50 Post subject: |
|
|
Чёрт, чой-то я этого в русской справке не углядел...
А с (\n)* работает? |
|
Back to top |
|
 |
Volniy

Joined: 15 Dec 2004 Posts: 585 Location: Местный
|
(Separately) Posted: Thu Jun 22, 2006 01:55 Post subject: |
|
|
funduk wrote: | Чёрт, чой-то я этого в русской справке не углядел...
А с (\n)* работает? |
В русской справке тоже есть: Code: | Прочие модификаторы неприменимы для Total Commander, поскольку программа поддерживает только поиск в пределах одной строки. |
А что должно работать-то с (\n)* ? Я чет не понял
Вообще \n работает только если оно в конце или в начале(!) регулярного выражения. Только ведь для этих целей и так есть метасимволы начала (^) и конца ($) строки. Нафик не надо нам это \n ... |
|
Back to top |
|
 |
funduk

Joined: 16 Aug 2005 Posts: 1513 Location: Санкт-Петербург
|
(Separately) Posted: Thu Jun 22, 2006 10:21 Post subject: |
|
|
Нда, с разрывами строк не получается... |
|
Back to top |
|
 |
|