では期待どおりの結果が得られまし=~
たが、ではありませんでしたmatch
。match
実際の一致データではなくメモリ参照を提供するのはなぜ"foo"
ですか? また、同じステートメントを実行するたびに参照が変わるのはなぜですか?
s= "foo"
/(?=foo)foo/ =~ s # => 0
/(?=foo)foo/.match s # => #<MatchData:0x2e6a490>
/(?=foo)foo/.match s # => #<MatchData:0x2e66390>
/(?=foo)foo/.match s # => #<MatchData:0x2e64310>