如何使用gsub替换撇号

时间:2012-01-19 16:02:20

标签: ruby-on-rails ruby

我想用“反斜杠撇号”(\')替换名称中的撇号(')。但遗憾的是没有得到这么简单的事情。

所以在irb上我试过了

x =“堆叠” x.gsub(/ [\ '] /,“\'')

一些如何不工作我得到相同的结果 - 堆栈代替堆栈的

3 个答案:

答案 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"