我有一个.cfg文件,其中包含以下数据:
*.*.key_val = {
key1= "value1";
key2 = "value2";
key3 = "value3";
};
Run Code Online (Sandbox Code Playgroud)
我想读取此文件并将键值对存储在哈希中@var[key][val]。
怎么做?
您可以通过以下方式解析此cfg:
File#readString#scan和正则表达式将文本转换为二维数组Hash[] text = File.read('your.cfg')
# => "*.*.key_val = {\n key1= \"value1\";\n key2 = \"value2\";\n key3 = \"value3\";\n};"
data = text.scan(/(\S+)\s*=\s*"([^"]+)/)
# => [["key1", "value1"], ["key2", "value2"], ["key3", "value3"]]
@var = Hash[data]
# => {"key1"=>"value1", "key2"=>"value2", "key3"=>"value3"}
Run Code Online (Sandbox Code Playgroud)
要不就:
@var = Hash[File.read('your.cfg').scan(/(\S+)\s*=\s*"([^"]+)/)]
Run Code Online (Sandbox Code Playgroud)