如何在lua中分离特定的单词

我正在尝试在Lua中分离此语句

sendex,000D6F0011BA2D60,fb,btn,1,on,100,null

我需要的输出方式如下:

Mac:000D6F0011BA2D60
Value:1
command:on
value:100

如何分离并获取值?

点赞
用户4984564
用户4984564
本地输入 = "sendex,000D6F0011BA2D60,fb,btn,1,on,100,null"
缓冲区 = {}
对于单词 in string.gmatch(输入, '[^,]+') do
  table.insert(缓冲区, 单词)
  --print(单词) -- 取消注释可以看到被匹配到的单词 ;)
end
print("Mac:" .. 缓冲区[2])
print("Value:" .. 缓冲区[5])
...

string.gmatch 的完整解释请参见 Lua 参考手册。简而言之,它遍历一个字符串,寻找一个模式,在这种情况下是 [^,]+,表示所有不是逗号的 1 个或多个字符组。每次找到这个模式,都会对其进行处理并继续搜索。

2018-12-17 12:50:53
用户107090
用户107090

如果您的输入完全如您所描述的那样,下面的代码将起作用:

s="sendex,000D6F0011BA2D60,fb,btn,1,on,100,null"
Mac,Value,command,value = s:match(".-,(.-),.-,.-,(.-),(.-),(.-),")
print(Mac,Value,command,value)

它使用非贪婪模式 .- 将输入分成字段。它还捕获了相关字段。

2018-12-17 13:06:25