匹配数组中的模式

有一个包含2个元素的数组

test = ["i am a boy", "i am a girl"]

我想测试一下,如果在数组元素中找到一个字符串,说:

test.include("boy")  ==> true
test.include("frog") ==> false

我可以这样做吗?


使用正则表达式。

test = ["i am a boy" , "i am a girl"]

test.find { |e| /boy/ =~ e }   #=> "i am a boy"
test.find { |e| /frog/ =~ e }  #=> nil

那么你可以像这样grep(正则表达式):

test.grep /boy/

甚至更好

test.grep(/boy/).any?

我带了Peters片段并修改了一下,以匹配字符串而不是数组值

ary = ["Home:Products:Glass", "Home:Products:Crystal"]
string = "Home:Products:Glass:Glasswear:Drinking Glasses"

使用:

ary.partial_include? string

数组中的第一项将返回true,它不需要匹配整个字符串。

class Array
  def partial_include? search
    self.each do |e|
      return true if search.include?(e.to_s)
    end
    return false
  end
end
链接地址: http://www.djcxy.com/p/25675.html

上一篇: Match a pattern in an array

下一篇: Find value in Array