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


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Dmitry Koteroff                      2:5020/400     16 Jul 2002  01:35:25
 To : Roman =KRoN= Karshiev
 Subject : Re: Регексп - замена по хешу.
 -------------------------------------------------------------------------------- 
 
 Здравствуйте, Roman.
 15 июля 2002 года, понедельник, 11:01. Вы написали:
 
 > Есть хеш с парами "что менять"=>"на что менять".
 > Hапример, аббревиатуры заменять на код их расшифровки или ключевые
 > слова на ссылки на них. Менять надо всюду, кроме внутренностей ссылок и
 > тэгов.
 
 Это довольно стандартная задача, в общем случае (для тысяч регулярных
 выражений) решается при помощи создания замыканий (предварительной
 компиляции кода):
 
 %regexps = (
     qr/тра/is => "ТрА",
     qr/ля/is  => "лЯ",
 );
 
 # сначала компилируем несколько функций - по одной
 # для каждого выражения.
 my @func=();
 while(my ($re,$to)=each(%regexps)) {
   push @func, sub { s/$re/$to/sg };
 }
 
 # затем читаем строки по одной и заменяем.
 while(<>) {
     # проходим по всем выражениям и заменяем их в $_
     foreach my $f (@func) { &$f() }
     print $_;
 }
 
 --
 С уважением,
   Дмитрий Котеров (dk@dklab.ru), ведущий программист (http://www.dklab.ru).
 --- ifmail v.2.15dev5
  * Origin: Demos online service (2:5020/400)
 
 

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

 Тема:    Автор:    Дата:  
 Регексп - замена по хешу.   Roman =KRoN= Karshiev   15 Jul 2002 15:01:02 
 Re: Регексп - замена по хе шу.   Andrey Sapozhnikov   15 Jul 2002 18:27:08 
 Re: Регексп - замена по хешу.   Dmitry Koteroff   16 Jul 2002 01:35:25 
 Re: Регексп - замена по хешу.   Roman =KRoN= Karshiev   16 Jul 2002 11:07:16 
 Re: Регексп - замена по хешу.   Artem Chuprina   16 Jul 2002 15:52:05 
 Re: Регексп - замена по хешу.   Dmitry Koteroff   16 Jul 2002 18:22:18 
 Re: Регексп - замена по хе шу.   Andrey Sapozhnikov   16 Jul 2002 19:01:30 
 Re: Регексп - замена по хешу.   Roman =KRoN= Karshiev   16 Jul 2002 20:04:51 
 Re: Регексп - замена по хе шу.   Andrey Sapozhnikov   16 Jul 2002 20:38:41 
Архивное /ru.perl/65770aee93ba.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional