使用两个输入grep数组中的字符串

时间:2015-09-18 22:54:24

标签: arrays ruby grep

我需要搜索数组以找出哪些对象包含特定字符串。该方法必须采用两个输入。

这是一个单输入法,可以返回所有带有t字母的对象:

def my_array_finding_method(source)
  source.grep(/t/)
end

my_array_finding_method(array)

这不起作用:

def my_array_finding_method(source, thing_to_find)
  source.grep(/thing_to_find/)
end

my_array_finding_method(array, "t")

我必须修改第二位代码才能工作。我怎么能这样做?

2 个答案:

答案 0 :(得分:2)

您必须interpolate变量名称。否则,它只被解释为纯文本。

source.grep(/#{thing_to_find}/)

答案 1 :(得分:0)

您不必使用正则表达式:

def my_array_finding_method(source, thing_to_find)
  source.select { |s| s.include?(thing_to_find) }
end

arr = %w| It's true that cats have nine lives. |
   #=> ["It's", "true", "that", "cats", "have", "nine", "lives."] 
my_array_finding_method(array, "t")
   #=> ["It's", "true", "that", "cats"]