Match a pattern in an array

There is an array with 2 elements

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

I want to test if a string is found inside the array elements, say:

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

Can i do it like that?


使用正则表达式。

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

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

Well you can grep (regex) like this:

test.grep /boy/

or even better

test.grep(/boy/).any?

I took Peters snippet and modified it a bit to match on the string instead of the array value

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

USE:

ary.partial_include? string

The first item in the array will return true, it does not need to match the entire string.

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/25676.html

上一篇: 查看数组中的所有元素是否具有特定值的最快方法

下一篇: 匹配数组中的模式