从哈希中删除具有相同开头的所有键

时间:2013-08-01 08:44:52

标签: ruby hash key

我想删除具有相同开头的哈希中的所有键,例如

myhash[:x_key_a]
myhash[:x_key_b]
myhash[:x_key_c]

所以我想从x

删除所有以myhash开头的键

除了翻看所有按键之外,还有更好的方法吗?

2 个答案:

答案 0 :(得分:3)

myhash.delete_if{ |key, _| key.to_s.start_with?('x') }

答案 1 :(得分:0)

myhash = {}

myhash[:x_key_a] = 1
myhash[:x_key_b] = 2
myhash[:y_key_c] = 3

p myhash.delete_if{ |key, _| key.match(/^x/) }
# => {:y_key_c=>3}