使用分隔符获取数值txt文件

时间:2015-04-25 21:06:22

标签: lua lua-patterns

我有一个txt文件,其中包含以下文字:

  

5; 2; 8; 3;

我需要使用;作为分隔符来获取数值,并将它们放入数组中。怎么可以实现呢?

1 个答案:

答案 0 :(得分:4)

最简单的方法是使用string.gmatch来匹配数字:

local example = "5;2;8;3;"
for i in string.gmatch(example, "%d+") do
  print(i)
end

输出:

5                                                                                                                                                                   
2                                                                                                                                                                   
8                                                                                                                                                                   
3 

具有特定Split功能的“更难”的方式:

function split(str, delimiter)
    local result = {}
    local regex = string.format("([^%s]+)%s", delimiter, delimiter)
    for entry in str:gmatch(regex) do
        table.insert(result, entry)
    end
    return result
end

local split_ex = split(example, ";")
print(unpack(split_ex))

输出:

5       2       8       3 

查看sample program here