string.gmatch() 在 Lua 中不返回 nil 吗?


local str = ",23,4"
local t = {}
local i = 1
for temp in str:gmatch("[^,]+") do
t[i] = temp
i = i + 1
end

我是Lua新手。这是我的代码。我以为t[1]已经nil.但是,gmatch()跳过了它,而不是返回nil。Tabelt[]只有两个键值。如果我像这样做桌子t[]

t[1] = nil
t[2] = 23
t[3] = 4

,如何使用gmatch()?或者我必须使用什么功能?

gmatch()没有跳过任何东西;它完全按照你的吩咐做了:它找到了每一个出现的"[^,]+",其中有两个,并将它们中的每一个交给循环体。

如果还想匹配空字符串,可以将模式更改为"[^,]*"

+匹配一个或多个

*匹配零个或多个

请参考 https://www.lua.org/manual/5.3/manual.html#6.4.1

相关内容

  • 没有找到相关文章

最新更新