[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Re: search

Paul Battley

6/19/2007 10:17:00 AM

On 19/06/07, geetha <sangeetha.geethu05@gmail.com> wrote:
> I am having one file . In that file more than 100 lines are there.
> I have to search some three words . The first two words there in first line
> and the another one word is there in
> another one line means How can I match that 3 words.

It was very difficult to parse your question. I think what you meant is this:

'Given a multi-line string, how do I search for a sequence of words
that spans multiple lines?'

E.g. for the string

haystack = "blah blah blah string\nto find blah blah blah"

a regular expression to match this might be

/\bstring\s+to\s+find\b/

Given a search string that's just a sequence of words

search_string = "string to find"

we can construct a regular expression to match it:

regexp = Regexp.new("\\b" + search_string.split.map{ |word|
Regexp.escape(word) }.join("\\s+") + "\\b")
# => /\bstring\s+to\s+find\b/

and search using normal methods:

haystack =~ regexp # => 15

Of course, for a real text search, you'll probably want to do some
stemming and normalisation, but I don't think that's what you were
asking about.

Does that help?
Paul.