From: Robert Klemme Date: 2009-07-11T02:05:06+09:00 Subject: Re: include? won't find match even though it's in String On 10.07.2009 17:11, David Charles wrote: > #person@cogeco.ca is in the string test12 which is a string of email > addresses #separated by newline characters > #puts test12 prints out very nice listing of all email addresses on a > separate #line including the aforementioned person@cogeco.ca > #I tried it with a test13 object in which I "slice!"(ed) everything out > #according to /[A-Za-z0-9_.%@-]+ / but I got the same results and puts > test13 #basically shows the same as test12 with the newline characters > removed which #was what I expected. > > if(test12.include? "person@coge") then > puts "person@coge found" > else > puts "person@coge not found" > end > ------> Outputs -----> ‘person@coge found’ > > if(test12.include? "person@cogec") then > puts "person@cogec found" > else > puts "person@cogec not found" > end > ------->Outputs -------> ‘person@cogec not found’ > ----------------------------------------------------------------------- > > This is so bizarre I can’t explain it.. I even tried splicing out all > newline characters etc and I still get the same results. As soon as I > get to the second ‘c’ in cogec the string is not found in test12. Of > course my goal is to be able to find ‘person@cogeco.ca’ in the string > test12 since it is in the string test12. > > (please note that I’ve changed the original email address to person in > order to protect privacy) > > Please let me know if there is a solution to this problem or if you have > any ideas. > > thanks in advance, > Dave. What Ruby version? Can you show the exact code to build the string test12? It works for me even on 1.8: $ irb irb(main):001:0> s=< "foo\nbar\nperson@cogeco.ca\nbaz\n" irb(main):007:0> s.include? "person@coge" => true irb(main):008:0> s.include? "person@cogec" => true irb(main):009:0> I suggest to print the string with p to discover control characters you might have in there. Kind regards robert -- remember.guy do |as, often| as.you_can - without end http://blog.rubybestpractices.com/