[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