banner.urls : pics.rbc.ru. Помогите создать pcre-правило!

Обсуждение распределенного бан-листа
Ответить
pknw
Сообщения: 4
Зарегистрирован: Вт мар 16, 2010 11:04

banner.urls : pics.rbc.ru. Помогите создать pcre-правило!

Сообщение pknw »

Приветствую всех!

В banner.urls лежат ссылки на баннеры с pics.rbc.ru, но они содержат "звездочки", соответственно не будут работать в urls-листе. Хотя структура каталогов описана правильно: gif-файлы, лежащие в 4, 5 и 6 подкаталогах с произвольным именем. Пример: http://pics.rbc.ru/5ek/9fj7/y1/a3j/dgbh ... -180_2.gif

Правила из banner.urls:
pics.rbc.ru/*/*/*/*/*.gif
pics.rbc.ru/*/*/*/*/*/*.gif
pics.rbc.ru/*/*/*/*/*/*/*.gif

Как описать их pcre-правилом?
Помогите пожалуйста разобраться, я только учусь понимать и писать perl-выражения :)

Slava
Site Admin
Сообщения: 2251
Зарегистрирован: Пт апр 02, 2004 12:34
Контактная информация:

Сообщение Slava »

pics\.rbc\.ru\/.+?\/.+?\/.+?\/.+?\/.+?\/.+?\/.+?\.gif$

здесь
.+ любая ненулевая последовательность символов
? модификатор, делающий .+ не жадной, иначе захватит несколько /
\. точка

для экспериментов удобно взять небольшую perl программу и на ней тестировать:

Код: Выделить всё

#!/usr/bin/perl -w

$a="http://pics.rbc.ru/5ek/9fj7/y1/a3j/dgbhdhhyhi/fjjejjfpmofk/180-180_2.gif";

if ($a=~/pics\.rbc\.ru\/.+?\/.+?\/.+?\/.+?\/.+?\/.+?\/.+?\.gif$/) {print "YES\n";}
else {print "NO\n";}

а что бы было понятно, что попадает под шаблон, заключите часть выражения в скобки и распечатайте:

Код: Выделить всё

if ($a=~/pics\.rbc\.ru\/(.+?)\/.+?\/.+?\/.+?\/.+?\/.+?\/.+?\.gif$/) {print "YES  $1\n";}

Ответить