On Wed, Oct 28, 2009 at 6:17 AM, Ahmad Azizan <ahmad.azizan / gmail.com> wrot=
e:
> Jes=FAs Gabriel y Gal=E1n 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 =3D<<EOF
>> irb(main):003:0" def
>> irb(main):004:0" =A0 test =3D 100;
>> irb(main):005:0" =A0 puts test
>> irb(main):006:0" =A0 (1..10).each { |i| puts i }
>> irb(main):007:0" end
>> irb(main):008:0" EOF
>> =3D> "def\n =A0test =3D 100;\n =A0puts test\n =A0(1..10).each { |i| puts=
 i
>> }\nend\n"
>> irb(main):011:0> m =3D text.match /def(.*)end/m
>> =3D> #<MatchData "def\n =A0test =3D 100;\n =A0puts test\n =A0(1..10).eac=
h { |i|
>> puts i }\nend" 1:"\n =A0test =3D 100;\n =A0puts test\n =A0(1..10).each {=
 |i|
>> puts i }\n">
>> irb(main):012:0> m[1]
>> =3D> "\n =A0test =3D 100;\n =A0puts test\n =A0(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.