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

Dmitry Arsentiev dmarsentev на gmail.com
Чт Ноя 6 09:35:40 PST 2008


А можно уточняющий вопрос?
Пусть строка хранится в переменной $str
Пусть необходимо в ней сделать замену \ на /
При этом в строке $str могут быть фрагменты вида  image\02
Требуется, чтобы эти фрагменты приняли вид image/02
Как этого добиться?



6 ноября 2008 г. 17:45 пользователь Alexey Beshenov <al на beshenov.ru> написал:
> 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 mailing list
> moscow-pm на pm.org | http://moscow.pm.org
>


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