首页 文章

使用gsub替换Ruby中的双斜杠

提问于
浏览
1

我有一些问题使用gsub来替换双斜线 . 问题是这样的:

我构建了一个小脚本来解析YAML文件以获取目录位置,然后使用它来对该目录中的文件进行全局处理 . 假设这是它找到的目录:

C:\Program Files\Adobe\Adobe Flash CS3\en\Configuration\ActionScript 3.0\Classes

这是一个Windows目录,反斜杠由YAML解析器转义,因此这实际上是从解析器加载的:

C:\\Program Files\\Adobe\\Adobe Flash CS3\\en\\Configuration\\ActionScript 3.0\\Classes

要使用此目录,我想要删除这些双斜杠:

path.gsub('\\','/')

此调用替换了路径中的大多数双反斜杠,但脚本仍然无效 . 当我看到路径变成什么时,我发现还有一个反斜杠没有被gsub取代:

\en

什么解释了这种奇怪的行为

1 回答

  • 0

    似乎在我的最终工作正常 .

    irb(main):001:0> string = "C:\\Program Files\\Adobe\\Adobe Flash CS3\\en\\Configuration\\ActionScript 3.0\\Classes"
    => "C:\\Program Files\\Adobe\\Adobe Flash CS3\\en\\Configuration\\ActionScript 3.0\\Classes\n"
    irb(main):003:0> string.gsub('\\', '/')
    => "C:/Program Files/Adobe/Adobe Flash CS3/en/Configuration/ActionScript 3.0/Classes\n"
    

    你使用的是什么版本的Ruby?脚本中可能还有别的东西?因为它对我来说效果很好 .

相关问题