2
puts 'the\t\'arget'.gsub("'", "\\'")

产生以下输出:

the\targetarget

为什么?

4

1 回答 1

5

gsub 中的\\'替换实际上是一个反向引用,它用原始字符串中的字符'之后的所有内容替换一个字符,即arget'

这是来自ruby​​ 文档String#gsub的引用:

如果替换是一个字符串,它将被替换为匹配的文本。它可能包含对模式捕获组的反向引用,形式为 \\d,其中 d 是组号,或 \\k,其中 n 是组名。如果它是双引号字符串,则两个反向引用都必须以附加的反斜杠开头。但是,在替换中,特殊匹配变量(例如 &$)不会引用当前匹配。

于 2013-03-28T12:14:06.027 回答