| Автор |
Сообщение
|
| 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 такого нет
перловые регулярки PCRE я к сутре врядли прикручу - библиотека очень тяжелая для таких целей, поэтому нужно ждать пока я доделаю POSIX версию и полностью реализую замену $1 $2 .. $N на значения
Апдейт: это уже сделано в версии 2.8
Последний раз редактировалось: Begemot (Ср Апр 11, 2007 11:07 am), всего редактировалось 1 раз |
|
| Вернуться к началу |
|
 |
| adre |
Добавлено: Пн Фев 05, 2007 8:09 am Заголовок сообщения: |
|
|
Зарегистрирован: 03.02.2007 Сообщения: 9
|
было бы неплохо, будем ждать апдейт.  |
|
| Вернуться к началу |
|
 |
| Virtual |
Добавлено: Вт Апр 10, 2007 9:59 pm Заголовок сообщения: |
|
|
Зарегистрирован: 22.04.2005 Сообщения: 2
|
|
| Вернуться к началу |
|
 |
| 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 |
Добавлено: Пт Апр 13, 2007 7:52 am Заголовок сообщения: |
|
|
Зарегистрирован: 01.06.2006 Сообщения: 19
|
где // ?
где это должно быть ? в правилах регулярок этого нет
регулярка типа: \w\d имеет обычный вид как есть |
|
| Вернуться к началу |
|
 |
| Begemot |
Добавлено: Пт Апр 13, 2007 8:13 am Заголовок сообщения: |
|
|
Site Admin
Зарегистрирован: 13.03.2005 Сообщения: 464
|
Zulu регулярка имеет начало и конец
/ -начало / -конец например
в сутре так |
|
| Вернуться к началу |
|
 |
| Zulu |
Добавлено: Пт Апр 13, 2007 11:47 am Заголовок сообщения: |
|
|
Зарегистрирован: 01.06.2006 Сообщения: 19
|
хм, это в сутре так, но не в регулярках
правила составления регулярок отличаются от тех которые ты используешь в сутре, поэтому особенности нужно сразу отображать в доке.
этот пример: \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/
просто в топике ошибся на один слеш, не работает все равно ! |
|
| Вернуться к началу |
|
 |
|
|