Ruby正则表达式密钥搜索

前端之家收集整理的这篇文章主要介绍了Ruby正则表达式密钥搜索前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
http://ruby-doc.org/core-1.9.3/Hash.html#method-i-include-3F

可以将hash.has_key?(String)转换为具有正则表达式搜索功能

解决方法

我建议用新方法扩展Hash而不是替换has_key?.
class Hash
  def has_rkey?(search)
    search = Regexp.new(search.to_s) unless search.is_a?(Regexp)
    !!keys.detect{ |key| key =~ search }
  end
end

这将使用字符串,符号或正则表达式作为参数.

irb> h = {:test => 1}
=> {:test=>1} 
irb> h.has_rkey?(:te)
 => true 
irb> h.has_rkey?("te")
 => true 
irb> h.has_rkey?(/te/)
 => true 
irb> h.has_rkey?("foo")
 => false 
irb> h.has_rkey?(:foo)
 => false 
irb> h.has_rkey?(/foo/)
 => false

猜你在找的Ruby相关文章