View previous topic :: View next topic |
Author |
Message |
plvtor
Joined: 11 Nov 2007 Posts: 11
|
(Separately) Posted: Sun Nov 11, 2007 02:08 Post subject: Расширенный поиск (near, and) |
|
|
Как искать по тексту, если надо найти файлы с двумя, тремя, и т.д. искомыми словами, есть несколько вариантов.
А можно ли искать так чтобы находило только те файлы, где искомые слова отстоят друг от друга на небольшом расстоянии?
Т.е. поиск "Иванов Петров" выдает результат только если эти слова, неважно в какой последовательности, находятся в пределах, скажем 100 знаков друг от друга. (предел бы тоже чтоб можно было задавать) .
А если Иванов упомянут в начале текста, а Петров где-нибудь в середине, то в итоговый результат этот файл не выводится. |
|
Back to top |
|
|
DrShark
Joined: 21 Oct 2006 Posts: 911 Location: Kyiv, Ukraine
|
(Separately) Posted: Sun Nov 11, 2007 16:22 Post subject: |
|
|
Нет наверное. Можешь попросить Alextp, м.б. от добавит такую возможность в плагин TextSearch. |
|
Back to top |
|
|
CaptainFlint
Joined: 14 Dec 2004 Posts: 6151 Location: Москва
|
(Separately) Posted: Sun Nov 11, 2007 17:47 Post subject: |
|
|
В качестве альтернативы можно использовать поиск в несколько шагов. Сначала ищешь все файлы, где есть слово "Иванов", потом выводишь их список в панель, выделяешь все, и натравливаешь на них поиск по слову "Петров", оставив, разумеется, включённой галочку "Только в выделенных". _________________ Почему же, ё-моё, ты нигде не пишешь "ё"? |
|
Back to top |
|
|
aLexx
Joined: 14 Mar 2005 Posts: 442 Location: Новокузнецк
|
(Separately) Posted: Sun Nov 11, 2007 17:57 Post subject: |
|
|
Не, по условию "находятся в пределах 100 знаков друг от друга." не проходит. Тут надо скриптик писать. Причём, несложный.
Шаг 1. Находим один из стрингов. Любой. Если есть, ищем второй.
Шаг 2. Если второй стринг находится, проверяем, на каком расстоянии они друг от друга. Тут можно также учесть длину самих стрингов.
Шаг 3. Если условие расстояния соблюдено, вывод информации.
Все параметры можно задать в комм. строке.
Имхо, для наших Гуру это плёвое дело! |
|
Back to top |
|
|
CaptainFlint
Joined: 14 Dec 2004 Posts: 6151 Location: Москва
|
(Separately) Posted: Sun Nov 11, 2007 18:36 Post subject: |
|
|
aLexx wrote: | Не, по условию "находятся в пределах 100 знаков друг от друга." не проходит. |
По этому условию - да, я имел в виду самый первый вопрос, который не оформлен как вопрос: plvtor wrote: | Как искать по тексту, если надо найти файлы с двумя, тремя, и т.д. искомыми словами |
В некоторых случаях для "100 знаков" могут помочь регулярные выражения. Например,
Иванов.{0,100}Петров
Но, увы, это сработает, только если искомые слова в одной строке. Многострочных регулярных выражений в Тотале нет. _________________ Почему же, ё-моё, ты нигде не пишешь "ё"? |
|
Back to top |
|
|
aLexx
Joined: 14 Mar 2005 Posts: 442 Location: Новокузнецк
|
(Separately) Posted: Sun Nov 11, 2007 18:44 Post subject: |
|
|
А кстати, для повышения уровня знаний.
Иванов.{0,100}Петров
Это выражение считает расстояние от начала "Иванов" до начала "Петров"?
Или от конца "Иванов" до начала "Петров"?
Иногда это бывает важным... |
|
Back to top |
|
|
CaptainFlint
Joined: 14 Dec 2004 Posts: 6151 Location: Москва
|
(Separately) Posted: Sun Nov 11, 2007 18:55 Post subject: |
|
|
aLexx wrote: | Иванов.{0,100}Петров
Это выражение считает расстояние от начала "Иванов" до начала "Петров"? |
Для повышения уровня знаний рекомендуется читать справку.
Выражение .{0,100} означает "произвольные символы количеством от 0 до 100". Соответственно, выражение Иванов.{0,100}Петров означает: строка "Иванов", потом произвольная последовательность символов, не более 100 штук, потом строка "Петров". _________________ Почему же, ё-моё, ты нигде не пишешь "ё"? |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|