如何使用 Lua 正确检查文件格式?

我想创建一个函数,它将接收一个包含文件名的字符串表,并只返回 .png 文件。我尝试使用 string.match() 函数和 %.png 模式来实现,但只要字符串中包含 ".png",它都会失效。

local file_list = {
    "image1.png",       -- 正确
    "image2.jpg",       -- 错误
    "image3.png.gif"    -- 不想要,但会通过
}

-- 排序函数
for i, j in ipairs(file_list) do
    if not string.match(j, "%.png") then
        table.remove(file_list, i)
    end
end

-- 输出结果
for i, j in pairs(file_list) do
    print(i, j)
end

虽然 table.remove() 函数比较慢,但我在这里使用它来释放空间。

那么,如何正确检查文件格式呢?我并没有找到一种方法能够一直匹配字符串直到结束。当然,我可以使用 string.sub(j, -4, -1) 来检查,但这似乎不是正确的做法。

点赞