Приветствую всех!
В 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-выражения
banner.urls : pics.rbc.ru. Помогите создать pcre-правило!
pics\.rbc\.ru\/.+?\/.+?\/.+?\/.+?\/.+?\/.+?\/.+?\.gif$
здесь
.+ любая ненулевая последовательность символов
? модификатор, делающий .+ не жадной, иначе захватит несколько /
\. точка
для экспериментов удобно взять небольшую perl программу и на ней тестировать:
а что бы было понятно, что попадает под шаблон, заключите часть выражения в скобки и распечатайте:
здесь
.+ любая ненулевая последовательность символов
? модификатор, делающий .+ не жадной, иначе захватит несколько /
\. точка
для экспериментов удобно взять небольшую 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";}