我不明白这里发生了什么。我应该如何提供gsub来获取字符串“Yaho \'o”?
>> "Yaho'o".gsub("Y", "\\Y")
=> "\\Yaho'o"
>> "Yaho'o".gsub("'", "\\'")
=> "Yahooo"
答案 0 :(得分:28)
\'表示$',这是匹配后的所有内容。 再次逃离\它工作
"Yaho'o".gsub("'", "\\\\'")
答案 1 :(得分:2)
"Yaho'o".gsub("'", "\\\\'")
因为您正在逃避转义字符以及转义单引号。
答案 2 :(得分:1)
这也可以做到,而且它的可读性更高:
def escape_single_quotes(str)
str.gsub(/'/) { |x| "\\#{x}" }
end
如果你想要转义单引号和反斜杠,以便可以将该字符串嵌入双引号的ruby字符串中,那么以下内容将为您执行此操作:
def escape_single_quotes_and_backslash(str)
str.gsub(/\\|'/) { |x| "\\#{x}" }
end