我似乎无法用Ruby中的单个反斜杠替换双反斜杠。我想我会用另一个反斜杠来逃避反斜杠。
1.9.3-p194 :001 > line = "this\\is\\a\\test"
=> "this\\is\\a\\test"
1.9.3-p194 :002 > line.gsub("\\\\", "\\") # Nothing
=> "this\\is\\a\\test"
这没用,所以我决定尝试找一个至少可以替代的比赛。
1.9.3-p194 :003 > line.gsub("\\", "_") # This works for replacing \\
=> "this_is_a_test"
1.9.3-p194 :004 > line.gsub("\\", "\\") # Nothing
=> "this\\is\\a\\test"
我仍然无法在Ruby中找到一种简单的方法。
答案 0 :(得分:6)
用这条线......
line = "this\\is\\a\\test"
...你实际创建了一个如下所示的字符串:
this\is\a\test
...因为每个\\
都会被识别为单个斜杠。当然,你将无法替换双斜杠,因为你的字符串中没有。
line.gsub("\\", "_")
行就是这样做的:用_
符号替换字符串中的所有单个斜杠。
line.gsub("\\", "\\")
只是伪装的无操作。
答案 1 :(得分:-1)
这应该可以用单斜杠替换双斜杠:
str.gsub(/\\\\/,"\\/")
答案 2 :(得分:-1)
我认为这可以完成工作:str.gsub('\\',"\/")