红宝石1.8.6(2007-09-24补丁程序级别111)
str = '\&123'
puts "abc".gsub("b", str) => ab123c
puts "abc".gsub("b", "#{str}") => ab123c
puts "abc".gsub("b", str.to_s) => ab123c
puts "abc".gsub("b", '\&123') => ab123c
puts "abc".gsub("b", "\&123") => a&123c <--- This I want to achieve using temporary variable
如果将str = '\&123'
更改为str = "\&123"
,它可以正常工作,但是我从str
函数中获得了match
,所以我无法在括号内手动指定它。...有什么方法可以更改字符串的'string'
到"string"
行为?
也许有一种更简单的方法,但是下面的代码有效
> str = '\&123'
> puts "abc".gsub("b", str.gsub(/\\&/o, '\\\\\&\2\1'))
> => a\&123c
@ Valentin
->我的意思是说match的str不是逐字记录的。因此出现了另一个我不知道的解决方案。
"abc".gsub("b") { str } -> a\&123c
只需删除反斜杠: