Список форумов www.kytoon.com  Список форумов www.kytoon.com  
  www.kytoon.com
    Поиск  Поиск   Пользователи  Пользователи   Группы  Группы
 
Регистрация  ::  Вход Войти и проверить личные сообщения
 
Список форумов www.kytoon.com » Sutra TDS и TS » Примеры regexp правил для фильтрации ключевых слов

Начать новую тему  Ответить на тему На страницу Пред.  1, 2, 3  След.
 Примеры regexp правил для фильтрации ключевых слов
Автор Сообщение
adre
СообщениеДобавлено: Сб Фев 03, 2007 10:07 am    Заголовок сообщения: Правила замещения Ответить с цитатой



Зарегистрирован: 03.02.2007
Сообщения: 9

на основе примера из документации:
/play (poker|games|casino)/$1 online/
попробовал написать фильтр:
/(play|win|online) (poker|games|casino)/$2/
оказалось, что не работает, так как надо - заменяет строку "play games" на "$2" вместо "games"
пришлось разбивать на три строки
/play (poker|games|casino)/$1/
/win (poker|games|casino)/$1/
/online (poker|games|casino)/$1/

хотя первый вариант компактней.
Вернуться к началу
Begemot
СообщениеДобавлено: Сб Фев 03, 2007 3:24 pm    Заголовок сообщения: Ответить с цитатой

Site Admin

Зарегистрирован: 13.03.2005
Сообщения: 464

вот так
/(?:play|win|online) (poker|games|casino)/$1/
Вернуться к началу
adre
СообщениеДобавлено: Вс Фев 04, 2007 1:18 pm    Заголовок сообщения: Ответить с цитатой



Зарегистрирован: 03.02.2007
Сообщения: 9

/(?:buy|purchase|cheap) (caca|kaka)/$1/
возвращает в http header-e
Invalid regexp: (?:buy|purchase|cheap) (caca|kaka)
пробовал в перле, работают оба варианта
$s="buy cheap caca";
$s=~s/(?:buy).*?\s(caca)/$1/;
$s=~s/(buy).*?\s(caca)/$2/;
Первый вариант считается расширенным
Perl also defines a consistent extension syntax for features not found in standard tools like awk and lex. The syntax is a pair of parentheses with a question mark as the first thing within the parentheses. The character after the question mark indicates the extension.
ну а второй должен по идее везде работать.
Вернуться к началу
Begemot
СообщениеДобавлено: Вс Фев 04, 2007 2:52 pm    Заголовок сообщения: Ответить с цитатой

Site Admin

Зарегистрирован: 13.03.2005
Сообщения: 464

хм, видимо в POSIX такой формат не работает, я позже посмотрю как это сделать там
Вернуться к началу
Begemot
СообщениеДобавлено: Вс Фев 04, 2007 11:56 pm    Заголовок сообщения: Ответить с цитатой

Site Admin

Зарегистрирован: 13.03.2005
Сообщения: 464

похоже что "(?:" это расширение из PCRE, в POSIX такого нет Sad
перловые регулярки PCRE я к сутре врядли прикручу - библиотека очень тяжелая для таких целей, поэтому нужно ждать пока я доделаю POSIX версию и полностью реализую замену $1 $2 .. $N на значения
Апдейт: это уже сделано в версии 2.8


Последний раз редактировалось: Begemot (Ср Апр 11, 2007 11:07 am), всего редактировалось 1 раз
Вернуться к началу
adre
СообщениеДобавлено: Пн Фев 05, 2007 8:09 am    Заголовок сообщения: Ответить с цитатой



Зарегистрирован: 03.02.2007
Сообщения: 9

было бы неплохо, будем ждать апдейт. Smile
Вернуться к началу
Virtual
СообщениеДобавлено: Вт Апр 10, 2007 9:59 pm    Заголовок сообщения: Ответить с цитатой



Зарегистрирован: 22.04.2005
Сообщения: 2

Черт. Перекопал весь хелп не один раз - все вроде понятно. НО.
Ситуация такая:

на сутру трафик льется по урлам вида:

http://domain.com/in.cgi?10&pl=11&from=g&play=1

схема - весовая. на урлах стоит мануал фильтр, вида:
pl select и замена:
/11/1234/
/12/1212/
/15/1313/
/16/1515/
урл куда слать трафф имеет вид:
http://domain2.com/script.php?id=$pl

Собсно проблема в чем. Срабатывает замена - только на урле вида http://domain.com/in.cgi?10&pl=16&from=g&play=1
на всех остальных http://domain.com/in.cgi?10&pl=11&from=g&play=1 например - редиректит на default.cgi. т.е. в замене - нормально обрабатывается только(!!) последний вариант (в данном случае если pl=16). все остальное - сразу на дефолт.цги (не прописан урл дефолтовый)..

ума не приложу, где косяк?
Вернуться к началу
Virtual
СообщениеДобавлено: Ср Апр 11, 2007 11:41 am    Заголовок сообщения: Ответить с цитатой



Зарегистрирован: 22.04.2005
Сообщения: 2

темные электрические силы...
толи лыжи не едут, толи я...

вчера же, когда не работали эти правила и все шло на дефолт.цги - делаю копирование урлов из одной схемы в другую - скопировались только урлы... стоял фильтр по странам "селект страна." скопировалась только страна.. селект не выставился.. стоял фильтр по уникам - он вообще не скопировался.. %)

сегодня утром все чудесным образом начало работать как и должно было.. ума не приложу, что за аномалии...
Вернуться к началу
Zulu
СообщениеДобавлено: Чт Апр 12, 2007 7:30 am    Заголовок сообщения: Ответить с цитатой



Зарегистрирован: 01.06.2006
Сообщения: 19

ставлю в фильтр по параметру например вот такое выражение: \w\d отправляю в него a1 - не фильтрует, а отсылает на дефолтовый урл. где неправильно ? или что то не работает ?
Вернуться к началу
Begemot
СообщениеДобавлено: Чт Апр 12, 2007 8:26 pm    Заголовок сообщения: Ответить с цитатой

Site Admin

Зарегистрирован: 13.03.2005
Сообщения: 464

Zulu а где // ?
Вернуться к началу
Zulu
СообщениеДобавлено: Пт Апр 13, 2007 7:52 am    Заголовок сообщения: Ответить с цитатой



Зарегистрирован: 01.06.2006
Сообщения: 19

где // ?

где это должно быть ? в правилах регулярок этого нет
регулярка типа: \w\d имеет обычный вид как есть
Вернуться к началу
Begemot
СообщениеДобавлено: Пт Апр 13, 2007 8:13 am    Заголовок сообщения: Ответить с цитатой

Site Admin

Зарегистрирован: 13.03.2005
Сообщения: 464

Zulu регулярка имеет начало и конец Smile
/ -начало / -конец например
в сутре так
Вернуться к началу
Zulu
СообщениеДобавлено: Пт Апр 13, 2007 11:47 am    Заголовок сообщения: Ответить с цитатой



Зарегистрирован: 01.06.2006
Сообщения: 19

хм, это в сутре так, но не в регулярках Wink
правила составления регулярок отличаются от тех которые ты используешь в сутре, поэтому особенности нужно сразу отображать в доке.

этот пример: \w\d первый выбирает все подряд, второй только цифры
если сделать так /\w\d\/ то тоже не работает, задача пропускать только то что нужно в регулярке
Вернуться к началу
panter
СообщениеДобавлено: Пт Апр 13, 2007 2:51 pm    Заголовок сообщения: Ответить с цитатой



Зарегистрирован: 15.03.2007
Сообщения: 4

/\w\d\/ .... а так /\w\d/
Вернуться к началу
Zulu
СообщениеДобавлено: Пт Апр 13, 2007 8:30 pm    Заголовок сообщения: Ответить с цитатой



Зарегистрирован: 01.06.2006
Сообщения: 19

вот именно так и делал /\w\d/

просто в топике ошибся на один слеш, не работает все равно !
Вернуться к началу
Показать сообщения:   
Начать новую тему  Ответить на тему На страницу Пред.  1, 2, 3  След. Страница 2 из 3

Список форумов www.kytoon.com » Sutra TDS и TS » Примеры regexp правил для фильтрации ключевых слов



 
 


DAJ Glass (1.0.5) template by Dustin Baccetti
EQ graphic based off of a design from www.freeclipart.nu
Powered by phpBB © 2001, 2002 phpBB Group