Lua中的字符串拆分和选择键打印

我需要一点关于使用Lua拆分字符串并打印其中部分内容的帮助,下面是我的代码:

b = "一个例子字符串"

for i in string.gmatch(b, "%w+") do
   print(i)
end

输出是...

  一个
  例子
  字符串

我如何打印出结果的一部分?

我尝试了下面这个,但是只返回一个"nils"的列表:

b = "一个例子字符串"

for i in string.gmatch(b, "%w+") do
   print(i[1])
end

如果我想打印:

字符串
例子

这会怎么样?我很确定我只是需要添加存在于内存中的键的值,比如[0]或者[1]。但是我一定是错误的。。

在这个使用案例中,示例文本将保持不变,只有字符串中的时间戳会改变。我只需要重新排列这些单词。

非常感谢您的帮助 :)

点赞
用户3574628
用户3574628

最好的方法是使用循环将匹配结果存储在数组中。然后可以使用文字索引访问它们:

b = "an example string"

local words = {}
for i in string.gmatch(b, "%w+") do
  table.insert(words, i)
end

print(words[3])
print(words[2])
2019-08-08 18:11:25
用户9593596
用户9593596

除了现有的(可能更好的)答案外,您还可以使用计数器手动处理一些工作:

counter = 0
for i in string.gmatch(b, "%w+") do
    counter = counter + 1
    if counter > 1 then print(i) end
end

或者,这是一个一行代码(虽然不适用于较大的字符串,并且在第二个和第三个单词之间也不插入换行符):

print(string.match(b, "%w+%s+(%w+)%s+(%w+)"))
2019-08-08 18:40:12