3

我似乎无法在 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 中执行此操作的简单方法。

4

3 回答 3

5

有了这条线...

line = "this\\is\\a\\test"

...您实际上创建了一个如下所示的字符串:

this\is\a\test

...因为每个都\\将被识别为一个斜线。当然,您将无法替换双斜杠,因为您的字符串中没有。

line.gsub("\\", "_")line 就是这样做的:用符号替换字符串中的所有斜杠。_

line.gsub("\\", "\\")只是变相的无操作。

于 2012-09-05T16:26:22.213 回答
-1

我认为这将完成这项工作:str.gsub('\\',"\/")

于 2019-08-08T14:08:12.637 回答
-2

这应该适用于用单斜杠替换双斜杠:

str.gsub(/\\\\/,"\\/")
于 2016-07-13T09:51:23.400 回答