http://ruby-doc.org/core-1.9.3/Hash.html#method-i-include-3F
可以将hash.has_key?(String)转换为具有正则表达式搜索功能?
Kyl*_*yle 10
我建议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
Run Code Online (Sandbox Code Playgroud)
这将使用字符串,符号或正则表达式作为参数.
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
Run Code Online (Sandbox Code Playgroud)
如果您只对是/否答案感兴趣,那么any?
可能是一个不错的选择:
hash.keys.any? { |key| key.to_s.match(regexp)}
Run Code Online (Sandbox Code Playgroud)
哪里regexp
是正则表达式.
归档时间: |
|
查看次数: |
11118 次 |
最近记录: |