使用变量构造格式字符串

时间:2015-06-30 07:10:12

标签: ruby string hash string-formatting

字符串格式的工作原理如下:

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

我想在不对其进行硬编码的情况下检索字符串中的哈希键。有没有办法做到这一点?

另外,有没有办法使用变量构造格式字符串?我想做这样的事情:

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

2 个答案:

答案 0 :(得分:2)

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

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

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

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

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

答案 1 :(得分:2)

你几乎得到了它。只需稍微用语法

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