2011-08-04 7 views
1

"each"で正規表現マッチングに応じて配列要素をフィルタリングするために使用できるメソッドはありますか?例えば、私が持っている正規表現に一致する配列要素を反復処理するにはどうすればよいですか?

次の配列:

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

私はこの配列にループしたいと「持っている」で始まる要素だけを取ります。

次のコードは、すべての要素

arr.each |element| do 

.... 

end 

答えて

4

のためのループをやっているあなたがこれを行うにはEnumerable's grep methodを使用することができます。

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

私が言うと思います:

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

あなたはあなたが興味を持っている要素をselectできますし、それらをループしてください:

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


end 
関連する問題