From: William James Date: 2006-12-21T07:30:05+09:00 Subject: Re: Searching Stings with Arrays? 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/] }