我想获取索引和x值。从 gmatch 函数中, i 是字符,所以我失败了这个代码。我想获取值和索引。有什么解决办法吗?
val[1] = 24
fx = {}
for i, x in response_body[1]:gmatch([["(%w+)lId"%s*:%s*(%d+)]]) do
fc[i] = x
print(x)
end
/* x prints 14
18
23 */
if (val[1] ~= fc[1] and val[1] ~= fc[2] and val[1] ~= fc[3] ) then
val[1] = fc[1]
else
val[1] = val[1]
end
最佳答案
string.gmatch
返回字符串。因此,i
和 x
都是代码中的字符串,前提是您当然有匹配项。
f[1]
与 f["1"]
不同。
因此,在您的代码中 fc[1]
等是 nil
值,因此不能等于 24
您可以使用tonumber
将字符串
转换为数字
值。但请记住,转换 %w
匹配的字母数字字符不一定可以转换为数字。你必须避免使用 nil 作为表索引,否则你会得到一个错误。
关于string - 使用 gmatch 捕获来索引表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47575620/