From: Pistos Christou Date: 2006-03-11T02:01:02+09:00 Subject: Re: Small regexp question francisrammeloo@hotmail.com wrote: > irb(main):001:0> line = "class MyClass;" > => "class MyClass;" > irb(main):002:0> line =~ /^\s*class\s+(\w+)\s*[^;]/ > => 0 > irb(main):003:0> puts $1 > MyClas > => nil Try putting a $ on the end of your regexp. What's happening is that your \w+ is matching up to "MyClas", and the final "s" is matching /[^;]/. irb(main):029:0> line = "class MyClass;" => "class MyClass;" irb(main):030:0> r = /^\s*class\s+(\w+)\s*[^;]/ => /^\s*class\s+(\w+)\s*[^;]/ irb(main):031:0> line =~ r => 0 irb(main):037:0> l = Regexp.last_match => # irb(main):038:0> puts l class MyClass => nil irb(main):033:0> r = /^\s*class\s+(\w+)\s*[^;]$/ => /^\s*class\s+(\w+)\s*[^;]$/ irb(main):034:0> line =~ r => nil -- Posted via http://www.ruby-forum.com/.