регулярка на поиск строк по заданным кеям - Форум успешных вебмастеров - GoFuckBiz.com
 
 
Форум успешных вебмастеров - GoFuckBiz.com

  Форум успешных вебмастеров - GoFuckBiz.com > Бизнес-решения > Скрипты, программы и технические решения
Дата
USD/RUB89.2589
BTC/USD68424.2200
Скрипты, программы и технические решения Обсуждаем скрипты, программы и новые технологии.

Закрытая тема
Опции темы Опции просмотра
Старый 25.08.2011, 16:11   #1
Strannic
Strannic.org
 
Аватар для Strannic
 
Регистрация: 15.12.2010
Сообщений: 2,028
Бабло: $508160
По умолчанию регулярка на поиск строк по заданным кеям

Подскажите регулярку на поиск строк в которых есть key1 с key2 и key1 с key3.

К примеру дан файл со строками:
Цитата:
мама мыла key1 и неугомонный key2
папа мыл своего богатыря
дочка мыла key1 и еще key3 Егора тоже помыла заодно
а key2 мыл key3
На выходе должно быть:
Цитата:
мама мыла key1 и неугомонный key2
дочка мыла key1 и еще key3 Егора тоже помыла заодно
Strannic вне форума  
Старый 25.08.2011, 16:15   #2
t0os
сам иди в жопу!
 
Аватар для t0os
 
Регистрация: 02.05.2009
Сообщений: 668
Бабло: $81580
По умолчанию

PHP код:
if((preg_match('~key1~'$str) && preg_match('~key2~'$str)) || (preg_match('~key1~'$str) && preg_match('~key3~'$str))
     echo 
$str
__________________
t0os вне форума  
Старый 25.08.2011, 16:17   #3
Strannic
Strannic.org
 
Аватар для Strannic
 
Регистрация: 15.12.2010
Сообщений: 2,028
Бабло: $508160
ТС -->
автор темы ТС По умолчанию

спасибо конечно, но мне нужна регулярка для того чтобы встроить ее в textpipepro, а если мне память не изменяет - php скрипты он исполнять еще не научился.
Strannic вне форума  
Старый 25.08.2011, 16:19   #4
t0os
сам иди в жопу!
 
Аватар для t0os
 
Регистрация: 02.05.2009
Сообщений: 668
Бабло: $81580
По умолчанию

Цитата:
\s+key1\s+.*?key2\s+|\s+key2\s+.*?key1\s+
как-то так, наверное
__________________
t0os вне форума  
Старый 25.08.2011, 16:21   #5
Strannic
Strannic.org
 
Аватар для Strannic
 
Регистрация: 15.12.2010
Сообщений: 2,028
Бабло: $508160
ТС -->
автор темы ТС По умолчанию

что-то не пашет, там pattern для Perl и для grep
есть на выбор, а также для MSWORD
ни один не берет эту регулярку
Strannic вне форума  
Старый 25.08.2011, 16:26   #6
Strannic
Strannic.org
 
Аватар для Strannic
 
Регистрация: 15.12.2010
Сообщений: 2,028
Бабло: $508160
ТС -->
автор темы ТС По умолчанию

вернее для Perl паттерна пашет, но выбирает только те строки в которых содержатся все кеи
Strannic вне форума  
Старый 25.08.2011, 16:28   #7
t0os
сам иди в жопу!
 
Аватар для t0os
 
Регистрация: 02.05.2009
Сообщений: 668
Бабло: $81580
По умолчанию

ну если совсем по-дурацкому, то можно и так)
Цитата:
key1|key2
просто этот ключ может быть составляющей слова, надо учитывать пробелы, знаки препинания


это Perl паттерн
__________________
t0os вне форума  
Старый 25.08.2011, 16:38   #8
Strannic
Strannic.org
 
Аватар для Strannic
 
Регистрация: 15.12.2010
Сообщений: 2,028
Бабло: $508160
ТС -->
автор темы ТС По умолчанию

такой способ не подходит, так как он выбирает строки в которых содержится тот или иной кей, а нужно в составе key1 и кеy2, и key1 и key3.
Сейчас делаю просто через паттерн MSword прогоняю один раз через
Цитата:
*key1*key2*
второй раз уже через
Цитата:
*key1*key3*
и склеиваю файлы, а нужно сделать чтобы через один прогон задача решалась.
Strannic вне форума