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