Как заменить "\" на "//" в Perl? - PullRequest
1 голос
/ 05 января 2010

Я хочу заменить "\", который появляется в каталоге Windows, на ссылку "/". Я пытался использовать s//\////g, но, похоже, это не сработало.

Ответы [ 3 ]

12 голосов
/ 05 января 2010
s[\\][//]g
  • \ необходимо экранировать в регулярном выражении
  • / не
  • Избегайте использования / для разделения разделов регулярных выражений при использовании / в самом выражении (это делает вещи намного более читабельными!)

... но вы, вероятно, должны использовать что-то вроде Path :: Class .

5 голосов
/ 05 января 2010

Прежде всего, использование разделителя, отличного от \, сделает ваше регулярное выражение более читабельным.

Затем вы должны заменить \ на \\, или он будет использован для экранирования следующего символа (/ в регулярном выражении, которое вы используете).

$link =~ s|\\|//|g;
2 голосов
/ 05 января 2010

Я думаю, что это должно сделать это: `

$str =~ s{\\}{//}g; 
...