我想用“反斜杠撇号”(\')替换名称中的撇号(')。但遗憾的是没有得到这么简单的事情。
所以在irb上我试过了
x =“堆叠” x.gsub(/ [\ '] /,“\'')
一些如何不工作我得到相同的结果 - 堆栈代替堆栈的
答案 0 :(得分:3)
试试这个:
x = "anupam's"; puts x.gsub("'", "\\\\'")
答案 1 :(得分:2)
试试这个:
x.gsub(/[']/,"\\\\\'")
结果:
1.9.3p0 :014 > puts x.gsub(/[']/,"\\\\\'")
anupam\'s
答案 2 :(得分:1)
这是PHPs addslashes方法的一个ruby变体(来自http://www.ruby-forum.com/topic/113067#263640)。此方法还使用双\
:
\
class String
def addslashes
self.gsub(/['"\\\x0]/,'\\\\\0')
end
end
哪个会正确地逃脱anupam的:
"anupam's".addslashes # => "anupam\\'s"