Pau*_*aul 2 ruby regex replace
puts 'the\t\'arget'.gsub("'", "\\'")
Run Code Online (Sandbox Code Playgroud)
产生以下输出:
the\targetarget
Run Code Online (Sandbox Code Playgroud)
为什么?
将\\'在GSUB置换实际上是一个反向引用,这是更换'后的一切字符'在原始字符串,这是性格ARGET.
这是来自ruby文档String#gsub的引用:
如果replacement是String,它将替换匹配的文本.它可能包含对格式为\\ d的模式捕获组的反向引用,其中d是组号,或\\ k,其中n是组名.如果它是双引号字符串,则两个反向引用都必须以额外的反斜杠开头.但是,在替换中,特殊匹配变量(例如&$)不会引用当前匹配.