如何使用Lua解析属性文件

3

我需要帮助解决一个小型的Lua脚本问题,它需要解析属性文件并生成一个使用字符串键的数组。这是我尝试的方法:

file = assert(io.open("/root/test.prop", "r"))
property = {}
for line in file:lines() do
  for key, value in string.gmatch(line, "(.-)=(%w+)") do 
    property[key] = value 
  end
end

由于某些原因,仅有第一对键值被添加到表中。作为一个新手Lua程序员,希望有人能够给予指点。


3
文件的格式是什么? - Textmode
3
请给我们展示一个样本文件。 - lhf
既然你是逐行读取文件,我猜这应该就足够了:key, value = string.match(line,"(.-)=(.-)$"); property[key] = value - lhf
1个回答

0

很可能你的gmatch在第二行失败了,所以键值是nil,因此for循环将退出。

正如其他人提到的那样,使用更全面的匹配表达式,例如"(.-)=(.-)$"。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接