来自ruby-doc.org关于替换模式gsub
:
序列\ 1,\ 2等可以用于在匹配中内插连续的组
这包括序列\'
,这意味着"一切都跟着我匹配".
无论是"\\'"
或'\\\''
将两者的农产品\'
(记住,\
有两个双转义和单引号的字符串,而'
在单引号字符串进行转义,所以使用单引号在这种情况下,实际上使事情变得更详细).例如:
puts "before*after".gsub("*", "\\'") "beforeafterafter" puts "before*after".gsub("*", '\\\'') "beforeafterafter"
你想要gsub
看到的实际上是\\'
,这可以由两者"\\\\'"
和'\\\\\''
.所以:
puts s.gsub("'", "\\\\'") children\'s world puts s.gsub("'", '\\\\\'') children\'s world
或者如果你需要做很多事情,\
你可以利用这样一个事实:当你使用/.../
(或%r{...}
)时,你不必双重逃避反斜杠:
puts s.gsub("'", /\\'/.source) children\'s world