Puzzled?

Hi,
I have a question…

Why the below snippet,

[“foo”,“bar”,“baz”].each do |s|
m = /^ba(.*?)$/.match(s)
puts m[0]
end

gives the following error?

test.rb:8: undefined method `[]’ for nil:NilClass (NoMethodError)

Regards,
Volkan

Regexp#match returns nil if it doesn’t match anything. On the first
run through your each statement, s is “foo”, which doesn’t match
against your regex. That means m is nil, and so you get an error when
trying to grab m[0].

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs