string - 如何在 Perl 中用正斜杠替换反斜杠?

标签 string perl escaping

类似于 this ,我如何在 Perl 中实现相同的功能?
我想转换:

C:\Dir1\SubDir1\` to `C:/Dir1/SubDir1/
我正在尝试按照 here 给出的示例进行操作,但是当我说类似的话时:
my $replacedString= ~s/$dir/"/"; # $dir is C:\Dir1\SubDir1\
我得到一个编译错误。我试过逃避 / ,但我得到其他编译器错误。

最佳答案

= ~=~ 非常不同.第一个是赋值和按位否定,第二个是与正则表达式一起使用的绑定(bind)运算符。

你想要的是这样的:

$string_to_change =~ s/pattern_to_look_for/string_to_replace_with/g;

注意使用全局 /g在整个字符串中进行更改的选项。在你的情况下,看起来你需要:
$dir =~ s/\\/\//g;

如果你想要一个更易读的正则表达式,你可以交换分隔符:s#\\#/#g;
如果要保留原始字符串,可以在替换之前复制它。也可以使用音译:tr#\\#/# -- 在这种情况下,您不需要全局选项。

简而言之:
$dir =~ tr#\\#/#;

文档:
  • Perl operators
  • Regular expressions
  • 关于string - 如何在 Perl 中用正斜杠替换反斜杠?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8014556/

    相关文章:

    perl - 此处正确关闭是什么意思

    regex - Perl:匹配一个模式并打印接下来的 N 行 K 次

    .net - System.Uri 查询字符串中的文字与符号

    c++ - 在 Doxygen 上逃逸,# 到底是什么意思?

    java - 如何反转字符串中的单词但将标点符号保持在正确的位置?

    Python 字符串到列表的转换

    c++ - 为什么C++字符串要转换为int?

    python - 将其中包含非 ASCII 符号的 Unicode 对象转换为字符串对象(在 Python 中)

    perl - 递归列出所有文件但排除一些目录(.git .svn)

    c++ - 为什么我的 unicode 字符串没有被正确处理(打印/复制)?