[mdk-re] Re: [mdk-re] офтопик - регулярные выражения

Anton Farygin =?iso-8859-1?q?rider_=CE=C1_altlinux=2Eru?=
Пн Май 28 08:23:01 MSD 2001


Mikhail Zabaluev wrote:

> 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.

Да. Только выражения... функции уже не работают.

Спасибо.
Rider






Подробная информация о списке рассылки community