"each"で正規表現マッチングに応じて配列要素をフィルタリングするために使用できるメソッドはありますか?例えば、私が持っている正規表現に一致する配列要素を反復処理するにはどうすればよいですか?
次の配列:
arr = ["one", "has_two", "has_tree", "four"]
私はこの配列にループしたいと「持っている」で始まる要素だけを取ります。
次のコードは、すべての要素
arr.each |element| do
....
end
"each"で正規表現マッチングに応じて配列要素をフィルタリングするために使用できるメソッドはありますか?例えば、私が持っている正規表現に一致する配列要素を反復処理するにはどうすればよいですか?
次の配列:
arr = ["one", "has_two", "has_tree", "four"]
私はこの配列にループしたいと「持っている」で始まる要素だけを取ります。
次のコードは、すべての要素
arr.each |element| do
....
end
のためのループをやっているあなたがこれを行うにはEnumerable's grep
methodを使用することができます。
arr.grep(/^has/).each do |element|
...
end
私が言うと思います:
arr.find_all{|el| el =~ /^has/}.each do...
あなたはあなたが興味を持っている要素をselect
できますし、それらをループしてください:
arr.select { |e| e[/^has/] }.each do |element|
end