当前位置 : 主页 > 网络编程 > lua >

模式匹配Lua中的字符串

来源:互联网 收集:自由互联 发布时间:2021-06-23
我使用Lua将以下字符串拆分为表: (数据彼此对齐.我没有找到如何在此网站上编写格式的数据) IP: 192.168.128.12 MAC: AF:3G:9F:c9:32:2E Expires: Fri Aug 13 20:04:53 2010 Time Left: 11040 seconds 结果应该放在
我使用Lua将以下字符串拆分为表:
(数据彼此对齐.我没有找到如何在此网站上编写格式的数据)

IP: 192.168.128.12
MAC: AF:3G:9F:c9:32:2E
Expires: Fri Aug 13 20:04:53 2010
Time Left: 11040 seconds

结果应该放在这样的表中:

t = {“IP” : “192.168.128.12”, “MAC” : “AF:3G:9F:c9:32:2E”, “Expires” : “Fri Aug 13 20:04:53 2010”, “Time Left” : “11040 seconds”}

我尝试过:

for k,v in string.gmatch(data, "([%w]+):([%w%p%s]+\n") do
  t[k] = v
end

那是我最好的尝试.

如果我理解你的用例,以下应该可以解决问题.可能需要稍微调整一下.

local s = "IP: 192.168.128.12 MAC: AF:3G:9F:c9:32:2E Expires: Fri Aug 13 20:04:53 2010 Time Left: 11040 seconds"
local result = {}
result["IP"] = s:match("IP: (%d+.%d+.%d+.%d+)")
result["MAC"] = s:match("MAC: (%w+:%w+:%w+:%w+:%w+:%w+)")
result["Expires"] = s:match("Expires: (%w+ %w+ %d+ %d+:%d+:%d+ %d+)")
result["Time Left"] = s:match("Time Left: (%d+ %w+)")
网友评论