在下面的代码中,我尝试在pathstr和arr之间进行模式匹配。
示例 - 根据pathstr“/ sample / find / apples / red”,如果在arr表中找到红色和苹果,那么我将设置 将值标记为true并打破循环。
目前我在循环中有硬编码v [2]。如何避免这种情况并动态检查表
中的值function ContainsWholeWord(input, word)
return string.find(input, "%f[%w]" .. word .. "%f[%W]")
end
local pathstr = "/sample/find/fruits/Apple/red"
local flag = false
local arr =
{
fruits = {Apple={price=10,color=red}},
vegetables = { Beans={price=10,color=red}}
}
for k, v in pairs(arr) do
//call ContainsWholeWord function and match pattern of table in pathstr.
If found, set flag value
flag = true
print(flag)
break
end
end
以下是Demo
答案 0 :(得分:0)
您可以尝试键值:
local arr = {
apples = { code="a", color="red", amount=5 },
oranges = { code="o", color="orange", amount=12 },
pears = { code="p", color="green", amount=7 },
}
然后
ContainsWholeWord(pathstr, v.color)