[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