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