如何迭代匹配正则表达式的数组元素?

时间:2011-08-04 19:18:23

标签: ruby-on-rails ruby

是否有一种方法可以与“each”一起使用,以根据正则表达式匹配来过滤数组元素?

我有以下数组:

arr = ["one", "has_two", "has_tree", "four"]

我想循环到这个数组中,并且只采用以“has”开头的元素。

以下代码正在为所有元素执行循环

arr.each |element| do

....

end

3 个答案:

答案 0 :(得分:4)

您可以使用Enumerable's grep method执行此操作:

arr.grep(/^has/).each do |element|
  ...
end

答案 1 :(得分:2)

你可以select你感兴趣的元素,然后循环遍历那些:

arr.select { |e| e[/^has/] }.each do |element|


end

答案 2 :(得分:0)

我会说:

arr.find_all{|el| el =~ /^has/}.each do...