我有一个像这样的字符串:
"abc-12\nxyz-17\nabc-18\npqr-13\n"
我想匹配每个字符串后面的数字并将它们全部加起来。例如,我想对和12
求和18
。abc
我该怎么做?
"abc-12\nxyz-17\nabc-18\npqr-13\n".split("\n").inject(0) do |sum, line|
sum += line[/[\w]+(\d)+/].to_i
end
s = "abc-12\nxyz-17\nabc-18\npqr-13\n"
s.split.inject(Hash.new(0)) { |h,e| id, n = e.split('-'); h[id] += n.to_i; h }
=> {"abc"=>30, "xyz"=>17, "pqr"=>13}