On Mon, 20 Feb 2006, Hal Fulton wrote: > John Carter wrote: >> Never under estimate what you can achieve with >> IO.read( "filename").scan(%r{}mx) do |match| >> end >> >> Especial as you can control how greedy the regex is with .*? >> >> I just deleted a lot of code and replaced it with one line. > > Well, as your self.memo included the rest of us, how about > sharing the example? Ok. Just quickly. I had a file of the format... blah blah Command : some stuff some more stuff I \ want with line continuation \ characters blah blah Command : more some stuff more some more stuff I \ want with line continuation \ characters blah blah ... that I wanted transformed into some stuff some more stuff I want with line continuation characters more some stuff more some more stuff I want with line continuation characters So I started write a routine to fix up the \ characters yield fixed lines and then a state machine to search for 'Command:' and gather everything until the blank line and then skip until... I start playing with Generator since I realised I could then keep everything in a each_something do |thing| yield other_thing( thing) end pattern instead of doing state machines and then I threw everything away and replaced it with.. File.read( "big_file").scan(%r{\nCommand\ :\n(.*?)\n\n}mx) do |command| puts $1.gsub( %r{\\\n}mx, '') end and then everyone.send( :memo, "to self") John Carter Phone : (64)(3) 358 6639 Tait Electronics Fax : (64)(3) 359 4632 PO Box 1645 Christchurch Email : john.carter / tait.co.nz New Zealand Carter's Clarification of Murphy's Law. "Things only ever go right so that they may go more spectacularly wrong later." From this principle, all of life and physics may be deduced.