From: 7stud -- Date: 2009-04-27T10:52:55+09:00 Subject: Re: Deleting numbers in array Clayton Lane wrote: > David A. Black wrote: >> Hi -- >> >> Clayton Lane wrote: >>> I'm new to Ruby and unsure how to delete numbers in an array. I have an >>> array filled with numbers from 1 to 100. If I use nums.delete_if {|x| x >>> == 9 }, it will delete 9, but I want to remove any number containing 9. >>> For example, 19, 39, 92, 99 etc. I tried using a wildcard, but it didn't >>> work. I'm sure theres an easy command to do it, but I wasn't able to >>> find it on in Ruby documentation. I also want to remove numbers >>> containing 0,6,7, and 8 as well. Any help would be greatly appreciated. >> >> You're pretty much going to have to convert the numbers to strings. For >> example: >> >> array.delete_if {|x| x.to_s[/[06789]/] } >> >> >> David > > Wow! Ruby is so good! I'm unsure of how to do this final step too. If > any numbers don't contain 1, remove them. Any ideas? arr = [51, 52, 20, 36, 79] result = arr.delete_if {|x| x.to_s[/[06789]/]} p result --output:-- [51, 52] result = arr.delete_if do |x| str = x.to_s str[/[02345]/] and not str[/1/] end p result --output:-- [51] -- Posted via http://www.ruby-forum.com/.