与字符串匹配的键数

All*_*lan 1 ruby hash

我有以下哈希:

{
  "day_mon"=>"on", "day_tue"=>"on", "day_wed"=>"on", "day_thu"=>"on",
  "day_fri"=>"on", "day_sat"=>"on", "day_sun"=>"on"
}
Run Code Online (Sandbox Code Playgroud)

如何计算散列中与字符串匹配的键数"day"

Car*_*and 8

无需创建临时数组:

h.count { |k,_| k.start_with?("day") }
  #=> 7 
Run Code Online (Sandbox Code Playgroud)

我认为密钥必须以密钥开头"day",但如果不是:

h.count { |k,_| k =~ /day/ }
  #=> 7 
Run Code Online (Sandbox Code Playgroud)