From: Vell Date: 2008-02-06T12:14:55+09:00 Subject: Re: Regexp matching in a block of code On Feb 5, 10:00 pm, Vell wrote: > I am trying to create a script that will allow me to compare email > addresses with a list of domains to see if they match.  If they don't > match then everything is good to go, but if they do match, I want to > be able to delete them or move them out of the list. > > The code that I wrote gives the following when its ran: > TypeError: type mismatch: String given > > method =~       in untitled document at line 7 > at top level    in untitled document at line 7 > method each     in untitled document at line 5 > at top level    in untitled document at line 5 > method each     in untitled document at line 4 > at top level    in untitled document at line 4 > Program exited. > > I know my issue is with this particular line: if(add =~ > Regexp.escape(comp)) > But I am not sure where to find out or how to resolve it > > Any help again is appreciated. > > Code: > > addresses = ["f...@bar1.com", "f...@bar2.com", "f...@bar3.com"] > competitors = ["bar.com", "bar1.com", "bar4.com"] > > addresses.each do |add| >   competitors.each do |comp| >     puts "Checking Competitor: #{comp}" >     if(add =~ Regexp.escape(comp)) >       puts "#{check} matched" >     else >       puts "No Match" >     end >   end > end Sorry guys, Messed up on initial insert of the code. Here is the code as follows: Code: addresses = ["f...@bar1.com", "f...@bar2.com", "f...@bar3.com"] competitors = ["bar.com", "bar1.com", "bar4.com"] addresses.each do |add| competitors.each do |comp| puts "Checking Competitor: #{comp}" if(add =~ Regexp.escape(comp)) puts "matched" else puts "No Match" end end end