且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

在 Ruby 中转义和取消转义字符串的***方法?

更新时间:2023-01-14 21:14:42

Ruby 2.5 添加了 String#undump 作为 String#dump:

Ruby 2.5 added String#undump as a complement to String#dump:

$ irb
irb(main):001:0> dumped_newline = "
".dump
=> ""\n""
irb(main):002:0> undumped_newline = dumped_newline.undump
=> "
"

有了它:

def escape(s)
  s.dump[1..-2]
end

def unescape(s)
  ""#{s}"".undump
end

$irb
irb(main):001:0> escape("
 " \")
=> "\n \" \\"
irb(main):002:0> unescape("\n \" \\")
=> "
 " \"