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

Ruby 从具有相同开头的哈希中删除所有键,ruby,hash,key,Ruby,Hash,Key,例如,我想从具有相同开头的哈希中删除所有键 myhash[:x_key_a] myhash[:x_key_b] myhash[:x_key_c] 因此,我想从myhash 除了检查所有的钥匙,还有更好的方法吗?我也会这样做。然而,OP的问题的答案是“否”,你必须迭代所有的键。我的意思是,通过非魔法的方式检查所有的键。每个,等等。如果仍然在引擎盖下使用非魔法的方式,请删除_!我同意这是最好的解决办法,我也会这么做。然而,OP的问题的答案是“否”,你必须迭代所有的键。我的意思是,通过非魔法的方式检

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

myhash[:x_key_a]
myhash[:x_key_b]
myhash[:x_key_c]
因此,我想从
myhash


除了检查所有的钥匙,还有更好的方法吗?

我也会这样做。然而,OP的问题的答案是“否”,你必须迭代所有的键。我的意思是,通过非魔法的方式检查所有的键。每个,等等。如果仍然在引擎盖下使用非魔法的方式,请删除_!我同意这是最好的解决办法,我也会这么做。然而,OP的问题的答案是“否”,你必须迭代所有的键。我的意思是,通过非魔法的方式检查所有的键。每个,等等。如果仍然在引擎盖下使用非魔法的方式,请删除_!我同意这是最好的解决办法。
myhash.delete_if{ |key, _| key.to_s.start_with?('x') }
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}