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


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Sergey V. Leschenko                  2:5020/400     26 Jul 2002  18:39:02
 To : Andrey Titov
 Subject : Re:  А как сделать чтобы тек   ст в [ ]  не заменялся?
 -------------------------------------------------------------------------------- 
 
 Andrey Titov wrote:
 
 AT>> $body =~ s/^([^\[]*?)рубль/$1доллар/g;
 AT>> $body =~ s/(\][^\[]*?)рубль([^\[]*?\[)/$1доллар$2/g;
 AT>> $body =~ s/рубль([^\]]*?)$/доллар$1/g;
 AT>>
 AT> Спасибо, попробую, но конечно хотелось бы найти более элегантное решение
 AT> проблемы. 
 
  данная задача разделяется на 3:
  - заменить все то, что перед первой открывающей скобкой
  - заменить все то, что вне скобок, но между блоков [ ... ]
  - заменить все то, что находится после последней закрывающей скобки
  
  в perl нет выражения 'не заменять', есть 'заменить найденное', 
  а как собрать эти 3 выражения в одно я не знаю (да и так нормально)
  
 AT>Это нужно для скрипта преобразующего транслит в кириллицу. Каждая
 AT> латинская буква и комбинация из нескольких букв преобразуется в
 AT> соответствующую русскую букву. Заключённое в скобках переводиться не будет.
 AT> Может сразу вырезать, заключённое в скобках, остальное перевести, а
 AT> содержимое скобок потом вернуть обратно на свои места. Или перекодировать
 AT> перед переводом содержимое скобок в что-нибудь, потом перевести, а потом
 AT> перекодировать назад.
 
  а не проще ли будет перебирать посимвольно?
  
  или даже так:
 
  while( length($body) > 0 ) {
     if($body =~s/^(\w)// ) {
         $newbody .= convert($1);
     }
     elsif($body =~ s/^(\s+)// ) {
         $newbody .= $1;
     }
     elsif($body =~ s/^(\[[^]]*\])// ) {
         $newbody .= $1;
     }
  } 
  
  
 -- 
 Best regards,                         sm@adamant.net
 Sergey             smash@astral.ntu-kpi.kiev.ua
 --- ifmail v.2.15dev5
  * Origin: Adamant ISP news server (2:5020/400)
 
 

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

 Тема:    Автор:    Дата:  
 А как сделать чтобы текст в [ ] не заменялся?   Andrey Titov   26 Jul 2002 11:39:29 
 Re: А как сделать чтобы текст в [ ] не заменялся?   Vladimir Podgorny   26 Jul 2002 14:11:49 
 Re: А как сделать чтобы текст в [ ] не заменялся?   Andrey Titov   26 Jul 2002 15:50:19 
 Re: А как сделать чтобы текст в [ ] не заменялся?   Vladimir Podgorny   26 Jul 2002 15:58:28 
 Re: А как сделать чтобы текст в [ ] не заменялся?   Artem Chuprina   26 Jul 2002 16:25:03 
 Re: А как сделать чтобы текст в [ ] не заменялся?   Andrey Titov   26 Jul 2002 17:18:15 
 Re: А как сделать чтобы текст в [ ] не заменялся?   Artem Chuprina   27 Jul 2002 20:48:13 
 А как сделать чтобы текст в [ ] не заменялся?   Aleksey Kotov   30 Jul 2002 18:35:27 
 Re: А как сделать чтобы тек ст в [ ] не заменялся?   Sergey V. Leschenko   31 Jul 2002 12:34:38 
 Re: А как сделать чтобы тек ст в [ ] не заменялся?   Sergey V. Leschenko   26 Jul 2002 16:12:47 
 Re: А как сделать чтобы тек ст в [ ] не заменялся?   Andrey Titov   26 Jul 2002 16:43:33 
 Re: А как сделать чтобы тек ст в [ ] не заменялся?   Sergey V. Leschenko   26 Jul 2002 18:39:02 
 Re: А как сделать чтобы тек ст в [ ] не заменялся?   Victor Wagner   26 Jul 2002 18:47:11 
 Re: А как сделать чтобы тек ст в [ ] не заменялся?   Ivan Frolcov   26 Jul 2002 19:03:37 
 Re: А как сделать чтобы тек ст в [ ] не заменялся?   Andrey Titov   31 Jul 2002 10:08:33 
 Re: А как сделать чтобы тек ст в [ ] не заменялся?   Artem Chuprina   31 Jul 2002 15:40:31 
 Re: А как сделать чтобы текст в [ ] не заменялся?   Dmitry Litvinov   30 Jul 2002 11:40:23 
Архивное /ru.perl/1341191130eae.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional