如何将类似“Hello my name is Name”这样的字符串分成多个参数,使得参数1为“Hello”,参数2为“my”等

我尝试过自己做这个,但是我只想到了如何将字符串分成几行:

local line = "Hello my name is Name"
for token in string.gmatch(line, "[^%s]+") do
   print(token)
end

这会得到:

Hello
my
name
is
Name

这不是我想要的。有什么建议吗?

点赞
用户1863229
用户1863229

如果要保留每一个非空白的标记,你可以将每个匹配项添加到一个数组中:

t = {}
line = "Hello my name is Name"
i = 1
for token in string.gmatch(line, "%S+") do
    t[i] = token
    print(t[i])
    i = i + 1
end

注意,这里的打印输出与你已经有的代码片段相同,但上面的代码实际上将每个单独的标记保存在数组中。

2021-03-23 02:49:29