gsub“#”返回“\#”而不是“#”

时间:2014-01-10 06:02:39

标签: ruby gsub

我正在尝试将“$ {variablename}”转换为“#{variablename}”,以便它可以访问字符串中的变量。

例如,如果我有一个变量foo =“bar”,我想要“$ {foo}”。gsub(“$”,“#”)返回“bar”因为我期待“#{foo” }“这是”bar“,而是我得到了”\#{foo}“

打开irb并试试这个

"${Hello}".gsub("$","#")

=> “\#{你好}”

我希望它是“#{Hello}”

有人可以帮忙吗?我希望我的问题很清楚......

1 个答案:

答案 0 :(得分:3)

这只是为了渲染而逃避的事情。它正在做你想要它做的事情。

那就是说,只是生成字符串#{foo}不会为你执行字符串插值。字符串不会突然插入第二个包含#{}

您应该重新考虑您的代码,以便您的值存储在哈希值中,而不是局部变量。