[Moscow.pm] туплю с регуляркой , если кто знает , помогите плиз: как заменить бэкслэш на слэш?
Dmitry Arsentiev
dmarsentev на gmail.com
Чт Ноя 6 10:33:22 PST 2008
> А какие проблемы с $s =~ s#\\#/#g ?
Алексей, у меня не работает эта конструкция при условии,
что я не могу заключить исходную строку в одинарные кавычки.
Я могу только делать что-то с переменной, содержащей эту строку.
Сформулирую по-другому.
У меня есть переменная, содержщая строку.
Каким действием над этой переменной
я могу перевести содержащуюся в ней строку
в 'однокавычковый' режим?
Как переключатель в однокавычковый режим не сработали
ни q#$a#, ни eval(q#$a#)
Вот скрипт.
-------------------------------------------------------------
#!/usr/bin/perl
use strict;
use utf8;
# эту строку трогать нельзя, трогать можно переменную $a
my $a = "image\02-1.gif image\02-2.gif image\02-2.gif и ещё много
разного в этой строке";
# надо получить
# image/02-1.gif image/02-2.gif image/02-2.gif и ещё много разного в этой строке
$a =~ s#\\#/#g;
print "$a\n";
-----------------------------------------------------------
Этот скрипт печатает смайлики вместо желаемых слэшей.
6 ноября 2008 г. 21:14 пользователь Alexey Beshenov <al на beshenov.ru> написал:
> On Thursday 06 November 2008 20:35:40 Dmitry Arsentiev wrote:
>> А можно уточняющий вопрос?
>> Пусть строка хранится в переменной $str
>> Пусть необходимо в ней сделать замену \ на /
>> При этом в строке $str могут быть фрагменты вида image\02
>> Требуется, чтобы эти фрагменты приняли вид image/02
>> Как этого добиться?
>
> А какие проблемы с $s =~ s#\\#/#g ? Никаких не должно быть,
> если в строке есть фрагменты вида image\02. В исходном примере
> таких фрагментов не было --- там был символ 0x02, который в
> виндовом терминале и отображается как смайлик.
>
> --
> 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