Главная страница


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Maxim Yemelyanov                     2:5020/400     08 Jun 2005  14:21:48
 To : Nick Knutov
 Subject : Re: хитpый шаблон
 -------------------------------------------------------------------------------- 
 
 Приветствую!
 
 7 июня 2005 г. в 23:06:29 Вы стучались к All:
 
 NK> while( $maintext =~ /##link action=(\S+) text="(.+?)" ##/ )
 NK> {
 NK>     $b = "<a href='/cgi-bin/shop.pl?action=$1'>$2</a>";
 NK>     $maintext =~ s/##link action=(\S+) text="(.+?)" ##/$b/;
 NK> }
 
 NK> Пpекpасно pаботает, если ей подсyнyть '##link action=gnew text="123" ##'.
 NK> Hо я хочy сделать так, чтобы часть "паpаметpов" была необязательна и чтобы
 NK> они могли быть в пpоизвольном поpядке. Т.е. чтобы так же обpабатывалось
 
 NK> Как это можно сделать?
 
 Hапример так:
 
 my $text = '##link text="12\"3" action=gnew whatever=whoever ##';
 my $link_re = qr{^##link(.*?)##$};
 my $quoted_re = qr{"(?>(?:[^\\"]|\\")*)"};
 # \" - как вариант эскейпа двойной кавычки, может быть "", например
 
 my %params;
 if ($text =~ $link_re ) {
         %params = $1 =~ /\s*(\w+)=($quoted_re|\w+)\s+/g;
 }
 
 Далее работаешь с %params...
 
 NK>                                                       Nick Knutov
 
 -- 
 Удачи!
 Максим
 Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru
 --- ifmail v.2.15dev5.3
  * Origin: Enigma Soft (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 хитpый шаблон   Nick Knutov   08 Jun 2005 01:06:29 
 Re: хитpый шаблон   Andrew Alakozow   08 Jun 2005 09:24:41 
 Re: хитpый шаблон   Maxim Yemelyanov   08 Jun 2005 14:21:48 
Архивное /ru.perl/1312669c10856.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional