ruby 1.8.6(2007-09-24 patchlevel 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
,因此我无法在parantheses中手动指定它....是有没有办法将字符串的'string'
更改为"string"
行为?
答案 0 :(得分:0)
答案 1 :(得分:0)
只需删除反斜杠:
puts "abc".gsub("b", '&123')
不需要在单引号内用反斜杠保护&符号(与双引号不同)。
答案 2 :(得分:0)
也许有一种更简单的方法,但下面的代码可以使用
> str = '\&123'
> puts "abc".gsub("b", str.gsub(/\\&/o, '\\\\\&\2\1'))
> => a\&123c
答案 3 :(得分:0)
@Valentin
- &GT;我的意思是来自比赛的str不是逐字逐句的。因此出现了另一种(更简单的)解决方案,我不知道......
"abc".gsub("b") { str } -> a\&123c