View previous topic :: View next topic |
Author |
Message |
AKR

Joined: 16 Mar 2007 Posts: 64 Location: Russian
|
(Separately) Posted: Tue Sep 23, 2008 17:20 Post subject: Использование регулярных выражений при поиске файлов |
|
|
Здравствуйте уважаемые. Прошу не пинать сильно.
Возникла необходимость произвести поиск файлов содержащих некоторый текст, к сожалению решения, найти не удалось.
Изучение механизма регулярных выражений тоже не привело к требуемому результату. Однако предполагаю, что именно использование регулярных выражений должно помочь.
Посему очень прошу, подскажите, пожалуйста, как в ТС сделать поиск файлов с условием содержания в них двух слов, например "test" и "about". Обязательно нужно чтобы в этих файлах в любом порядке и в любых местах находились именно эти два слова.
Заранее большое спасибо. _________________ Жизнь это игра для которой нет Tutorial`а |
|
Back to top |
|
 |
Tol!k

Joined: 01 Apr 2008 Posts: 1727 Location: Арзамас
|
(Separately) Posted: Tue Sep 23, 2008 18:14 Post subject: |
|
|
ищешь 1 слово;
выделяешь найденные файлы;
в выделеном ищешь 2е слово.
без регулярных выражений. |
|
Back to top |
|
 |
AKR

Joined: 16 Mar 2007 Posts: 64 Location: Russian
|
(Separately) Posted: Tue Sep 23, 2008 18:35 Post subject: |
|
|
Т.е. нахожу все файлы по первому слову, нажимаю "Файлы на панель", там выбираем все файлы (Ctrl+A) и теперь ещё раз поиск второго слова?.
Если предлагается это, то понятное дело. Так и приходится выкручиваться.
Но ведь есть же навреное более красивый вариант? ПОэтому и кинул взор на регулярные выражения. Может ведь понадобиться поиск и по трём словам или с исключением третьего слова. Но в данном случаи меня интересует имено как поставить условие "И", чтобы искал наличие обоих.
Есть мысли? _________________ Жизнь это игра для которой нет Tutorial`а |
|
Back to top |
|
 |
Tol!k

Joined: 01 Apr 2008 Posts: 1727 Location: Арзамас
|
(Separately) Posted: Tue Sep 23, 2008 18:39 Post subject: |
|
|
В Тоталовских рег.выражениях есть оператор "ИЛИ", но (кажется) нет оператора "И" |
|
Back to top |
|
 |
Rodny

Joined: 24 Jan 2007 Posts: 949 Location: Могилёв, Беларусь
|
(Separately) Posted: Tue Sep 23, 2008 21:16 Post subject: |
|
|
AKR
AFAIR, поиск с регулярные выражениями происходит в пределах одной строки, максимум двух (вроде видел в каком-то текстовом редакторе).
Поэтому если слова могут быть в разных строках, то ничего не выйдет.
Поправьте, если ошибаюсь. |
|
Back to top |
|
 |
Вахмурка

Joined: 27 Dec 2004 Posts: 2586 Location: Большая деревня Москва
|
|
Back to top |
|
 |
CaptainFlint

Joined: 14 Dec 2004 Posts: 6193 Location: Москва
|
(Separately) Posted: Wed Sep 24, 2008 02:16 Post subject: |
|
|
AKR wrote: | Но ведь есть же навреное более красивый вариант? |
К сожалению, нет.
Rodny wrote: | AFAIR, поиск с регулярные выражениями происходит в пределах одной строки, максимум двух (вроде видел в каком-то текстовом редакторе). |
Зависит от реализации. Если речь о Тотале, то только одна строка, если обо всех программах вообще, то ограничений не существует (скажем, в EmEditor количество строк для регэкспов идёт отдельной настройкой).
Вахмурка wrote: | Простите, о каких "строках" идет речь?! Вопрос был про поиск файлов! |
Вопрос был про поиск файлов по содержимому. Поэтому речь идёт о строках содержимого файлов. _________________ Почему же, ё-моё, ты нигде не пишешь "ё"? |
|
Back to top |
|
 |
Volniy

Joined: 15 Dec 2004 Posts: 585 Location: Местный
|
(Separately) Posted: Wed Sep 24, 2008 02:21 Post subject: |
|
|
Вахмурка wrote: | Простите, о каких "строках" идет речь?! |
Речь о текстовом содержимом файлов. Разыскиваемые слова по условию могут находиться в произвольных позициях, а тоесть вполне могут быть и в разных строках текста. Так что Тоталовский поиск с регекспами не прокатит в этом случае, "because the program only supports searching within one line." (c) 1993-2008 by Christian Ghisler |
|
Back to top |
|
 |
Rodny

Joined: 24 Jan 2007 Posts: 949 Location: Могилёв, Беларусь
|
(Separately) Posted: Wed Sep 24, 2008 02:33 Post subject: |
|
|
Вахмурка wrote: | о каких "строках" идет речь? |
О последовательности символов, ограниченной символами конца строки, "0D 0A", если не ошибаюсь.
Будь то текстовый файл, или бинарный, эти символы наверняка в нём присутствуют. При моих попытках использования регекспов при поиске в файлах у меня сложилось мнение, что в поиск идёт именно в этих пределах. |
|
Back to top |
|
 |
Вахмурка

Joined: 27 Dec 2004 Posts: 2586 Location: Большая деревня Москва
|
(Separately) Posted: Wed Sep 24, 2008 08:42 Post subject: |
|
|
Фразу Quote: | файлов с условием содержания в них двух слов | можно было понять и "в их именах". Ну ладно, разъяснили.
А если бы потребовалось найти файлы, в именах которых встречаются ОДНОВРЕМЕННО строка1 и строка2? Видимо, так: Code: | *строка1*строка2*.*
*строка2*строка1*.* | то есть поисков (проходов) будет 2. По этому поводу 2 вопроса:
1. Можно ли обойтись одним поиском, используя регулярные выражения (по-моему, нет)?
2. Если этих строк не 2, а N, то потребуется сначала по формуле комбинаторики посчитать число проходов? (например, при N = 3 проходов будет 6). _________________ Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон) |
|
Back to top |
|
 |
AKR

Joined: 16 Mar 2007 Posts: 64 Location: Russian
|
(Separately) Posted: Wed Sep 24, 2008 10:00 Post subject: |
|
|
Вахмурка если бы нужно было искать в именеах файлов то это вовсе не проблема никакая.
по втоему примеру, в строке поиска нужно просто написать через пробел комбинации:
Code: | *строка1*строка2*.* *строка2*строка1*.* |
если три слова то тут тяжелее
только перебирать комбинации или множественный поиск (т.е. поиск по результатам поиска). В регулярных выражениях есть операция "ИЛИ" но я не нашёл операции "И", так что видимо никак.
Ребята спасибо за помощь, теперь понятно почему не получается, что мне требуется.
Хотя даже не знаю что он сможет сделать если в даже в рег выражениях похоже нет такой "фишки".
Может стоит поднять вопрос Гислеру?
Вот отличная книга по регулярным выражениям.
http://wmate.ru/ebooks/book67.html
Вчера пробежался по ней, может что пропустил конечно, но таки не нашёл решения. _________________ Жизнь это игра для которой нет Tutorial`а |
|
Back to top |
|
 |
Вахмурка

Joined: 27 Dec 2004 Posts: 2586 Location: Большая деревня Москва
|
|
Back to top |
|
 |
|