From: kjana@...4lab.to (YANAGAWA Kazuhisa) Date: 2002-01-07T11:44:16+09:00 Subject: [ruby-talk:30402] Re: Efficient "lexing" in Ruby (maybe an RCR?) In message <87lmfb6j8h.fsf@squeaker.lickey.com> matt+dated+1010799012.80728c@lickey.com writes: > This is mainly because the Regexp#match matches on the whole string, > so if you want to match starting at an arbitrary position, you must > create a substring. Parsing a large string this way can create a lot > of intermediate copies of the same string, stressing memory use. Then you can use String#index(regexp, offset). Eg: s = "foobarbaz" p s.index(/ba/, 0) #=> 3 p s.index(/ba/, 3) #=> 3 p s.index(/ba/, 6) #=> 6 -- kjana@dm4lab.to January 7, 2002 Youth comes but once in a lifetime.