如何使用单个反斜杠替换字符串中的双反斜杠?
我试图用"\\a\\b\\c".gsub!("\\\\","\\")
来做,但这不起作用。
答案 0 :(得分:0)
狂野猜测,因为我对ruby一无所知:
可能是反斜杠在字符串中有特殊含义吗?尝试一下这个:
"\a\b\c".gsub!("\\\\","\\")
答案 1 :(得分:0)
in ruby strings the backslash is the special first char to start an "escape sequence"因此:
\\ - means single backslash
为了更好地理解这个例子可能有所帮助:
>> s = "\\ha"
=> "\\ha"
>> s.split(//)
=> ["\\", "h", "a"]
你可以看到你只有3个字符,第一个是单个反斜杠,由转义序列\\
>> s.gsub!("\\","\\\\\\")
=> "\\\\ha"
>> s.split(//)
=> ["\\", "\\", "h", "a"]
我们的字符串现在是第一个4个字符,第二个是反斜杠。
>> s.gsub!("\\\\","\\")
=> "\\ha"
>> s.split(//)
=> ["\\", "h", "a"]
使用以下实施例测试上述实施例:ruby 1.8.7,irb 0.9.5