From: "mame (Yusuke Endoh)" Date: 2012-11-20T23:31:42+09:00 Subject: [ruby-core:49758] [ruby-trunk - Feature #6802][Assigned] String#scan should have equivalent yielding MatchData Issue #6802 has been updated by mame (Yusuke Endoh). Status changed from Open to Assigned Assignee set to matz (Yukihiro Matsumoto) Target version set to next minor ---------------------------------------- Feature #6802: String#scan should have equivalent yielding MatchData https://bugs.ruby-lang.org/issues/6802#change-33338 Author: prijutme4ty (Ilya Vorontsov) Status: Assigned Priority: Normal Assignee: matz (Yukihiro Matsumoto) Category: Target version: next minor Ruby should have method to obtain not an array of arrays but of MatchData objects. It can help in obtaining named groups: pattern = /x: (?\d+) y:(?\d+)/ polygon = [] text.scan_for_pattern(pattern){|m| polygon << Point.new(m[:x], m[:y]) } Not to break existing code we need unique name. Ideas? May be #each_match -- http://bugs.ruby-lang.org/