将数组元素拆分为一组字符串



如何将一行拆分为一组字符串输入

array = ["123 abcd ki98 1090:09 12/1/2098", "678 njiu ji87 1087:90 87/56/90"]

期望输出

array =[["123", "abcd", "ki98", "1090:09", "12/1/2098"],
["678", "njiu", "ji87", "1087:90", "87/56/90"]]

我试过

array.each do |line|
  array2 << line.split(' ') # doesnt give what I wanted
  array2 << line.split(/s+/) # doesnt give me what I wanted
  array2 << line.split/s+/ # comes with error
  array2 << line.split(/s+/).inspect # This works but is too slow
end

有任何解决此问题的建议吗?刚刚启动ruby。请帮忙。

还有另一个解决方案:

a.flat_map(&:split)
> a.map(&:split).flatten
# => ["123", "abcd", "ki98", "1090:09", "12/1/2098678", "njiu", "ji87", "1087:90", "87/56/90"] 

编辑

如果你需要一个阵列

array = ["123 abcd ki98 1090:09 12/1/2098", "678 njiu ji87 1087:90 87/56/90"]
array.map &:split
# => [["123", "abcd", "ki98", "1090:09", "12/1/2098"], ["678", "njiu", "ji87", "1087:90", "87/56/90"]

最新更新