[Moscow.pm] туплю с регуляркой , если кто знает , помогите плиз: как заменить бэкслэш на слэш?

Alexey Beshenov al на beshenov.ru
Чт Ноя 6 06:45:02 PST 2008


On Thursday 06 November 2008 17:16:09 Kaltashkin Eugene wrote:
>> $a =~ s{\\}{/};
> Разделитель regexp должен быть одинаковый.
> $a =~ s#\\#\/#g;

В Perl не обязательно. Для парных скобок другая запись.

  $ perl -e '$\="\n"; $_=q#image\02-0-0-1.gif#; s{\\}{/}g; print;'
  image/02-0-0-1.gif

  $ perl -e '$\="\n"; $_=q#image\02-0-0-1.gif#; s[\\][/]g; print;'
  image/02-0-0-1.gif

  $ perl -e '$\="\n"; $_=q#image\02-0-0-1.gif#; s(\\)(/)g; print;'
  image/02-0-0-1.gif


Но для sed иначе (да, тут можно запутаться):

  $ echo 'image\02-0-0-1.gif' | sed -e 's{\\}{/}g'
  sed: -e expression #1, char 9: unterminated `s' command

  $ echo 'image\02-0-0-1.gif' | sed -e 's{\\{/{g'           # !!!
  image/02-0-0-1.gif


  $ perl -e '$\ = "\n"; $_ = q#image\02-0-0-1.gif#; s{\\{/{g; print;'
  Substitution pattern not terminated at -e line 1.

-- 
Setting Orange, Aftermath 18 YOLD 3174
Alexey Beshenov  http://beshenov.ru/



Подробная информация о списке рассылки Moscow-pm