2012-07-13 58 views
0

我正在寻找一些方法来摆脱collection对象collect_data方法并直接返回匹配的数据。来自gsub方法的地图匹配数据

def collect_data(string) 
    collection = [] 
    string.gsub(/a\=\[(.+?)\](\s|$)/) { collection << $1 } 
    collection 
end 

一些例如它是如何想的工作

string = "a=[111] b=[555] a=[123]" 

collect_data(string) # => ["111", "123"] 

回答

2
"a=[111] b=[555] a=[123]".scan(/a\=\[(.+?)\](\s|$)/).map(&:first)