【发布时间】:2014-10-04 20:02:18
【问题描述】:
好的,所以我最近才进入 lua,发现自己陷入了以下困境:
我有函数 peripheral.getNames()(这是一个自定义函数)
它将返回一个结构为 key,value 的表,而 key 始终是一个数字,从 1 开始,value 将是函数找到的值(它搜索与其连接的设备)
在我的示例中,它创建了一个如下所示的表
1 herp
2 derp
3 monitor_1
4 morederp
我可以使用以下内容打印值
local pgn = peripherals.getNames()
for key,value in pairs(pgn) do
setCursorPos(1,key)
write(value)
end
end
这将像这样在我的显示器上输出相应的表格值
herp
derp
monitor_1
morederp
现在,我尝试过滤我的结果,以便仅在 value 包含“monitor”时打印一些内容
我试图通过
for key,value in pairs(pgn) do
if string.match(value, monitor) then
#dostuff
end
end
但它总是返回 'bad argument: string expected, got nil' 所以很明显 string.match 要么不接受“值”,要么值不是字符串 所以我先尝试转换值
for key,value in pairs(pgn) do
value = tostring(value)
if ....
#dostuff
end
end
但还是会报同样的错误
你们中有人知道我如何让 string.match 接受“值”,或者在这个 for 循环中是否有另一种方法来检查模式的“值”内容?
【问题讨论】:
标签: regex lua minecraft lua-table lua-patterns