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.