0

私は構成ファイルのパーサーに取り組んでおり、キーと値のペアをハッシュに解析するのに助けが必要です。

次の形式のデータがありますkey: value key2: value2 another_key: another_value

これまでのところ、次の形式のコードがあります

    line = line.strip!.split(':\s+')

の形式で配列を返します

["key:value"]["key2: value2"]["another_key: another_value"]

これらの配列を次の形式で単一のハッシュに変換するにはどうすればよいですか

{key=>value, key2=>value2, another_key=>another_value}

キーと値のペアが文字列の形式である必要があるかどうかはわかりません。作業が最も簡単なものは何でも。

ご協力いただきありがとうございます!


これは私が見つけた解決策です:

    line = line.strip.split(':')
    hash = Hash[*line]

その結果、出力が得られます{"key"=>"value"}, {"key2"=>"value2"}

4

3 に答える 3

1

Caryのソリューションに非常に近い:

Hash[*line.delete(':').split]
于 2013-11-15T07:35:58.853 に答える
1

キーと値が単一の単語であると仮定すると、おそらく次のようになります。

Hash[line.scan(/(\w+):\s?(\w+)/)]

探しているものと異なる場合は、正規表現を変更できます。

于 2013-11-15T05:15:01.870 に答える