[mdk-re] Re: [mdk-re] офтопик - регулярные выражения
Mikhail Zabaluev
=?iso-8859-1?q?mhz_=CE=C1_alt-linux=2Eorg?=
Вс Май 27 21:59:00 MSD 2001
Hello Anton,
On Sun, May 27, 2001 at 07:01:30PM +0400, Anton Farygin wrote:
>
> Sergey Degtyaryov wrote:
>
> > Доброго времени суток, Anton,
> >
> > 25.05.2001 в 16:14 Вы сказали буквально следующее:
> >
> > >>>Нет, нет, я про модификаторы сзади. В приведенном примере нужно
> > >>>добавить 's' позади pattern'а, чтобы '.*?' захватывали символы перевода строки.
> >
> > AF> А как быть в случае, если искать нужно вот в такой строке:
> >
> > AF> <li><font size=+1><a
> > AF> href=
> > AF> "Линк
> > AF> "
> > AF> >Название</a>Дата</font></li>
> >
> > А что - s не помогает?
> >
> > #!/usr/bin/perl
> > $_ = '<a
> > href=
> > l
> > i
> > n
> > k
> > >
> > t
> > i
> > t
> > l
> > e
> > </a>
> > d
> > a
> > t
> > e
> > </font>
> > </li>';
> >
> > @results = /href=(.*?)>(.*?)<\/a>(.*?)<\/font>/s; # вот тут
> > foreach (@results) {s/\n//g}
> > print join "\n", @results;
> > exit;
> >
> > link
> > title
> > date
>
> Не совсем такая задача - смысл все делать в одном регулярном выражении.
> Вот например :
> cat man_test.html |perl -p -e 's/(<)(.*?)(\n)/\1\2/gs''
> Убирает первый перевод строки. А вот как убрать все последующие?
> Убрать их вообще во всех тегах. Т.е. между "<" и ">"
perl -p -e "s[(<.*?>)]{ join(' ', split(/\n/, $1)) }gse"
Подойдет?
> Запускать это выражения я буду в PHP. Соответсвенно перловые конструкции не катят :-(
Катят перловые регулярные выражения, см. документацию по pcre.
--
Stay tuned,
MhZ JID: mookid на jabber.org
___________
Wilner's Observation:
All conversations with a potato should be conducted in private.
Подробная информация о списке рассылки community