首先,我在整个脚本编写过程中一直使用这个站点作为参考,它非常棒。我很欣赏这里的每个人都是多么有用和知识渊博。考虑到这一点,我有一个关于 Lua 中匹配(模式匹配)的问题。我正在编写一个脚本,该脚本基本上从文件中获取输入并将其导入表中。我正在检查文件中的特定 MAC 地址作为我要查询的主机。
if macFile then
local file = io.open(macFile)
if file then
for line in file:lines() do
local f = line
i, j = string.find ( f, "%x+" )
m = string.sub(f, i, j)
table.insert( macTable, m )
end
file:close()
end
这会将文件解析为我稍后将用于查询的格式。表建立后,我运行一个模式匹配序列,通过迭代表并将模式与当前迭代匹配,尝试从表中匹配 MAC:
local output = {}
t = "00:00:00:00:00:00"
s = string.gsub( t, ":", "")
for key,value in next,macTable,nil do
a, p = string.find ( s, value )
matchFound = string.sub(s, a, p)
table.insert( output, matchFound )
end
这不会返回任何输出,尽管当我在 Lua 提示符中逐行输入它时,它似乎可以工作。我相信变量正在正确传递。有什么建议么?