From: William James Date: 2006-12-21T07:50:05+09:00 Subject: Re: Searching Stings with Arrays? dbl...@wobblini.net wrote: > Hi -- > > On Thu, 21 Dec 2006, William James wrote: > > > dblack@wobblini.net wrote: > >> Hi -- > >> > >> On Thu, 21 Dec 2006, Phil Cooperking wrote: > >> > >>> Hi, I've been having a little problem with this. most of my ruby is from > >>> rails and both are shaky. > >>> > >>> okay what I've got is a string (which is a browser user agent) and I > >>> would like to search that string with a predefined array of browsers. > >>> I've done this in php so I'm positve an easy solution exists in Ruby > >>> > >>> this is what I got > >>> @string = "mozilla/5.0 (macintosh; u; ppc mac os x; en) > >>> applewebkit/418.9.1 (khtml, like gecko) safari/419.3" > >>> > >>> array = ["shiira", "msie", "safari", "firefox", "netscape"] > >>> > >>> so I'd like to search the string for any matches, it should stop at > >>> safari and bob's sombodys uncle. > >>> > >>> this is what I've been trying to do. > >>> array.find {|b| b == @string}.to_s > >>> > >>> this does't work I know, but I'm I in the right direction? > >> > >> You could use: > >> > >> @string.include?(b) > >> > >> or, if you want to be more careful about false positives (like, if > >> "msie" was a substring in some other browser's string), you could do: > >> > >> array.find {|b| @string[/#{b}/] } > >> > >> which anchors to word boundaries. > > > > Are you sure? > > > > array.find{|s| @string[/\b#{s}\b/] } > > Thanks. I had this weird feeling something was wrong when I sent that > message.... I think the 'b' variable name fooled me :-) Yeah, that's why I changed it to "s".