"AL", "alco" => "AL", "alcoh" => "AL", "alcohol" => "AL", -6ren">
gpt4 book ai didi

ruby - 在 ruby​​ hash 中使用正则表达式作为关键字

转载 作者:数据小太阳 更新时间:2023-10-29 07:43:24 26 4
gpt4 key购买 nike

我有 HashMap

H = {
"alc" => "AL",
"alco" => "AL",
"alcoh" => "AL",
"alcohol" => "AL",
"alcoholic" => "AL",
}

现在我想用正则表达式来表示所有的键,比如 H={ /^alc/=> "AL"

稍后我想使用 H["alc"] 或 H["alco"] 来检索值。但是,如果我使用正则表达式,则无法正确获取值。我该怎么办?

最佳答案

class MyHash < Hash
def [](a)
self.select {|k| k =~ a}.shift[1]
end
end

result = MyHash.new

result[/^alc/] = "AL"

puts result['alcohol'] #=> 'AL'

我会创建一个散列的子类,然后重写这个方法。这样您仍然可以在其他地方保留常规哈希功能。

关于ruby - 在 ruby​​ hash 中使用正则表达式作为关键字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11233721/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com