尝试用实际值替换字符串中的{varN}

时间:2018-10-30 20:29:07

标签: ruby

我有一个字符串:

s = ExternalLibrary::get_string_data
# ====> my_string_{var1}___{var2}

我要替换“ var1”和“ var2”。这不起作用:

s % {var1: "aa", var2: "bb"}
# ====> my_string_{var1}___{var2}

2 个答案:

答案 0 :(得分:0)

一种选择,如果我明白了:

s = "my_string_{var1}___{var2}"

substitute = {var1: "aa", var2: "bb"}

s.split(/\{(.*?)\}/).map { |e| substitute[e.to_sym] || e }.join

#=> "my_string_aa___bb"

答案 1 :(得分:0)

Ruby使用%{而不是{进行哈希插值:

s.gsub("{", "%{") % { var1: "foo", var2: "bar" }
# => "my_string_foo___bar"