我想合并相关的键,例如:
my_hash = {key_a: "value a", key_b: "value b", key_c: "value c"}
我希望结果是:
{ key:
[
{ a: "value a" },
{ b: "value b" },
{ c: "value c" }
]
}
通过显式地获取每个键可以很容易地做到这一点,但问题是,它可以定义动态键。
问题是key_
可以是任意的,你不能确定key_
后面是什么。可以是key_r
、key_w
、key_z
4条答案
按热度按时间ykejflvf1#
我会这样做:
我建议稍微改变一下数据结构,因为在我看来,嵌套的哈希只有一个键/值对是没有意义的:
plupiseo2#
如果
key
部分始终相同,则可以执行以下操作:axkjgtzd3#
输入
编码
输出:
fkaflof64#
这里有一些混乱,即字符串必须从符号键中提取,修改,然后转换回符号。为了方便起见,可以定义帮助器方法来实现这一点,部分原因是可以单独测试它们。
比如说
参见符号#[]。
然后我们可以写信
正则表达式
/[^_]*/
匹配字符类[^_]
中的零个或多个(*
)字符(尽可能多),后者由除下划线(^
)之外的所有字符组成。正则表达式/[^_]*\z/
是相同的,除了匹配必须在字符串的结尾(\z
是字符串结尾锚)。