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

cornet =?iso-8859-1?q?cornet_=CE=C1_zmail=2Eru?=
Пн Май 21 14:04:00 MSD 2001


Mikhail Zabaluev wrote:
> 
> Hello Sergey,
> 
> On Sat, May 19, 2001 at 04:38:50AM +0400, Sergey Degtyaryov wrote:
> >
> > On Sat, 19 May 2001 03:10:07 +0400
> > Mikhail Zabaluev <mhz на alt-linux.org> wrote:
> >
> > > > Задача:
> > > > Перловый скрипт.
> > > > Есть одна длинная строка вынутая из файла html, сваленная в переменную:
> > > >
> > > > <li><font size=+1><a
> > > > href=\"./CombatSystem/Drop_sequence.html">Последовательность действий
> > > > перед боем.</a> Updated 9:05:2001</font></li>
> >
> > > > ./CombatSystem/Drop_sequence.html
> > > > Последовательность действий перед боем.
> > > > 9:05:2001
> >
> > Именно данная строка (и подобные ей) разбирается так:
> > #$text = '<li><font size=+1><a href="Линк">Название</a>Дата</font></li>';
> > $text  =~ /<a href=(.*?)>(.*?)<\/a>(.*?)<\/font>/;
> > print "$1, $2, $3\n";
> > Хотя лучше конечно посмотреть в сторону HTML::Parser
> >
> > > Нужно читать про модификаторы 'm' и 's' для перловых регулярных
> > > выражений. Можно заработать небольшой отек головы (я до сих пор не
> > > сразу вспоминаю, какой из них что дает),
> >
> > m - поиск, s - замена =)
> 
> Нет, нет, я про модификаторы сзади. В приведенном примере нужно
> добавить 's' позади pattern'а, чтобы '.*?' захватывали символы перевода строки.
> 
> P.S. HTML::Parser действительно рулит.

Спасибо всем!
Я уже с этим делом разобрался и скриптик написал, все работает :-))

вот это выдирает имя файла в переменную $1:
$String=~/^<li>(?:<font.*>)(?:<a href=")(.*?)(?:">).*$/i
это дескрипшен:
$String=~/^<li>(?:<font.*>)(?:<a href=".*">)(.*?)(?:<\/a>).*$/i
а это дату прошлого обновления:
$String=~/^<li>(?:<font.*>)?.*Updated (.*?)(?:<\/font>)?<\/li>$/i

Еще раз всем СПАСИБО, я врубился :-))))))

-- 
******** FIRE & STEEL ********




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