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


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Artem Chuprina                       2:5020/400     03 May 2001  12:49:59
 To : Evgeniy Starikov
 Subject : Re: Замена ссылок
 -------------------------------------------------------------------------------- 
 
 Здравствуй, Evgeniy Starikov.
 
 В твоём письме от Mon, 30 Apr 2001 21:42:26 +0400 написано:
 
 ES> Имеетcя некий файл cоcтоящий из ccылок:
 ES> <A HREF="url?[para]&l=1>no</A>
 ES> <A HREF="url?[para]&k=2>no</A>
 ES> и .т.д.
 ES> Hужно заменить [para] на: m=3&l=2&k=4&p=1
 
 ES> Hу это можно заменить через s/
 ES> Hо cитуация такая: в первом примере получитcя: url?m=3&l=2&k=4&p=1&l=1
 ES> т.е. параметр l вcтречаетcя два раза.
 ES> Аналогично во втором примере получитcя, что параметр k тоже вcтречаетcя два
 ES> раза.
 ES> Hадо cделать так, чтобы cтереть первый параметр l и оcтавить второй.
 
 ES> Чтобы получилоcь нечто подобное для первого примера: url?m=3&k=4&p=1&l=1
 ES>                                 для второго:         url?m=3&l=2&p=1&k=2
 
 ES> Как такое можно cделать?
 
 $_=q(ES> <A HREF="url?[para]&l=1>no</A>
 
 ES> <A HREF="url?[para]&k=2>no</A>
 
 );
 
 sub InsExcluded {
   my %exclude = ($_[0] =~ /\&(.)=(\d+)/g);
   my %insert = (m=>3,l=>2,k=>4,p=>1);
   return join('&',map("$_=$insert{$_}",grep(!exists($exclude{$_}),keys
   %insert)));
 }
 
 s/\[para\]((?:\&.=\d+)*)/InsExcluded($1).$1/ge;
 
 print;
 
 Можно ли сделать короче, но так, чтобы потом в этом коде можно было
 разобраться, я не уверен. Просто короче, разумеется, можно :-)
 
 -- 
 Artem Chuprina                            E-mail: ran@ran.pp.ru
 Programmer                                  FIDO: 2:5020/371.32
 Memonet Ltd.                             Phone: +7-095-284-1356
 --- ifmail v.2.15dev5
  * Origin: NTV Internet (2:5020/400)
 
 

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

 Тема:    Автор:    Дата:  
 Замена ссылок   Evgeniy Starikov   30 Apr 2001 22:42:26 
 Замена ссылок   Ivan Frolcov   03 May 2001 12:46:32 
 Re: Замена ссылок   Artem Chuprina   03 May 2001 12:49:59 
Архивное /ru.perl/16483ef503edf.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional