使用变量构造格式字符串

Constructing a format string using variables

字符串格式是这样的:

someString = "Example string %{key}"
result = someString % {key: newData}

我想检索字符串中的散列键而不对它们进行硬编码。有没有办法做到这一点?

另外,请问有什么方法可以使用变量构造格式字符串吗?我想做这样的事情:

variable = key 
result = someString % {variable: newData}

一种从格式字符串中提取键的方法:

"Example string %{key1} %{key2}".scan /(?<=%{)[^{}]+?(?=})/
# => ["key1", "key2"]

正则表达式 (?<=%{)[^{}]+?(?=}) 匹配一个或多个字符(非贪婪),前提是它以 %{ 为前缀,后跟 }


要构造格式字符串,可以使用字符串插值:

variable = 'key'
"Example string %{#{variable}}"
# => "Example string %{key}"

你差不多明白了。语法有点偏差

variable = :key # get this one from whereever
someString = "Example string %{key}"
someString % { variable => 'foo' } # => "Example string foo"