From: Rodrigo Bermejo Date: 2008-06-26T09:42:44+09:00 Subject: Re: How to find second match in a file Cheyne Li wrote: > Hi, everyone > > My code opens a file and read line by line to find a given string as > first match. After I found one, how can i find the second match, a > different string, which is supposed to appear several lines after the > line of first match in a fast way? > > for example, the following is the contents of a file > > ka;sdfjaskf;asdfjk > skdfkfkfkfkfkfkfkfkfk > aks;flasjklfjkassjfksa > aaaaaaaaaaaaaaaaaaaaaaaa > bbbbbasdfdask;fjsdkalf > *************hello world***************ka;sdjkf;sjadkfj > asdfkasjdkfldjaskl;jfklas; > jaskdl;fjkasdjkfljdskla;jdfs > jkasl;jfkasjdklfjsal;df > asjkdfjkasd;fd;asdfj > ***********Ruby*********a;sjdfklsdjal;fjkda; > asdfjjasklfjkdasjkfjaskl; > fjdka;dfdjasjfsd;a > > So, after I found the match "hello world" by using a while loop, how can > i find the "Ruby" in the same while loop? > > Looking forward to your reply. Thanks in advance Not sure why you need it ...but seems you can do what you need by simple doing this: File.readlines("1.txt").each do |line| if line =~ /hello world/ #do something p line end if line =~ /Ruby/ #do something else p line end end -- Posted via http://www.ruby-forum.com/.