簡體   English   中英

使用gsub替換Ruby中的雙斜杠

[英]Using gsub to replace double slashes in Ruby

我在使用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

要使用此目錄,我想用gsub除去這些雙斜杠:

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

盡管腳本仍然無法運行,但此調用替換了路徑中的大多數雙反斜杠。 當我查看路徑變成什么時,我發現還有一個反斜杠尚未被gsub取代:

\en

是什么解釋了這種奇怪的行為?

看來對我來說還不錯。

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? 腳本中可能還有其他情況嗎? 因為它對irb來說對我來說效果很好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM