|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Victor Wagner 2:5020/400 26 Jul 2002 18:47:11 To : "Sergey V. Leschenko" Subject : Re: А как сделать чтобы тек ст в [ ] не заменялся? -------------------------------------------------------------------------------- Sergey V. Leschenko <sm@adamant.net> wrote: SVL> Andrey Titov wrote: AT>>> $body =~ s/^([^\[]*?)рубль/$1доллар/g; AT>>> $body =~ s/(\][^\[]*?)рубль([^\[]*?\[)/$1доллар$2/g; AT>>> $body =~ s/рубль([^\]]*?)$/доллар$1/g; AT>>> AT>> Спасибо, попробую, но конечно хотелось бы найти более элегантное решение AT>> проблемы. SVL> данная задача разделяется на 3: SVL> - заменить все то, что перед первой открывающей скобкой SVL> - заменить все то, что вне скобок, но между блоков [ ... ] SVL> - заменить все то, что находится после последней закрывающей скобки SVL> SVL> в perl нет выражения 'не заменять', есть 'заменить найденное', SVL> а как собрать эти 3 выражения в одно я не знаю (да и так нормально) Я бы посплитил по регекспу /(\[\])/ а потом бы заменял только в тех элементах списка, у которых остаток от деления номера на четыре равен 0 -- http://www.communiware.ru http://www.ice.ru/~vitus --- ifmail v.2.15dev5 * Origin: Leninsky 45 home network (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор Архивное /ru.perl/15178bf95756b.html, оценка из 5, голосов 10
|