On Wed, Oct 28, 2009 at 6:17 AM, Ahmad Azizan <ahmad.azizan / gmail.com> wrote: > Jesù¸ Gabriel y GaláÏ wrote: >> >> This is one way that solves what you said. The problem with regexes is >> how it will handle the cases you didn't say :-) >> (for example, what do you want to match when there are more "ends" and >> so on). >> >> irb(main):002:0> text =<<EOF >> irb(main):003:0" def >> irb(main):004:0" test = 100; >> irb(main):005:0" puts test >> irb(main):006:0" (1..10).each { |i| puts i } >> irb(main):007:0" end >> irb(main):008:0" EOF >> => "def\n est = 100;\n uts test\n 1..10).each { |i| puts> }\nend\n" >> irb(main):011:0> m = text.match /def(.*)end/m >> => #<MatchData "def\n est = 100;\n uts test\n 1..10).each { |i| >> puts i }\nend" 1:"\n est = 100;\n uts test\n 1..10).each {i| >> puts i }\n"> >> irb(main):012:0> m[1] >> => "\n est = 100;\n uts test\n 1..10).each { |i| puts i }\n" >> >> Hope this helps, >> >> Jesus. > > Thank you, it did helped me. > Actually I've tried using the same regex as you use, which is > /def(.*)end/, however i overlooked the m in the end of / Just for the record: the m regex modifier means "multiline" and makes the dot match the newline character. Jesus.