次の繰り返しパターンを持つ文字列を取得します: ラベル (1 つの単語)、コロン、いくつかのテキスト (ほとんど何でも、空であっても)。例えば:
"FileSize: 597262388 Duration_String: 1h 34mn Duration_string3: 01:34:12.564 Source_Duration: Width: 712 Height: 360"
ラベルと次のテキストに基づいて 2D 配列を作成しようとしています。
[["FileSize", "597262388"], ["Duration_String", "1h 34mn"], ["Duration_string3", "01:34:12.564"], ["Source_Duration", ""], ["Width", "712"], ["Height", "360"]]
私はこのコードを試しました:
medinfo = "FileSize: 597262388 Duration_String: 1h 34mn Duration_string3: 01:34:12.564 Source_Duration: Width: 712 Height: 360"
mi = medinfo.split(':')
s = []
mi.each do |x|
x2 = x.split(/\W+/).last
x1 = x.gsub(x2, '')
s << x1
s << x2
end
mi_pairs = (s[1..-1].each_slice 2).to_a
しかし、すべての場合にうまくいくわけではなく、より単純なルビーの解決策が必要だと感じています。