加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

模式匹配Lua中的字符串

发布时间:2020-12-14 21:43:08 所属栏目:大数据 来源:网络整理
导读:我使用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
我使用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+)")

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读