【发布时间】:2016-03-06 11:15:01
【问题描述】:
我需要使用特定模式“-”分割输入文件的每一行。我离解决方案不远,但我的代码实际上也分割了单个空格。文件每一行的格式如下:
NAME - ID - USERNAME - GROUP NAME - GROUP ID - TIMESTAMP
name 字段可以有空格,与组名和时间戳相同,例如这样的一行
LUCKY STRIKE - 11223344 - @lucky - CIGARETTES SMOKERS - 44332211 - 11:42 may/5th
有效。 所以这些标记化的值应该存储在一个表中。 这是我的代码:
local function splitstring(inputstr)
sep = "(%s-%s)"
local t={} ; i=1
for str in string.gmatch(inputstr, "([^"..sep.."]+)") do
t[i] = str
i = i + 1
end
print("=========="..t[1].."===========")
print("=========="..t[2].."===========")
print("=========="..t[3].."===========")
return t
end
当我运行它时,在第一个字段中输入“幸运”,在第二个字段中输入,第三个字段中的 id。 有没有办法在第一个字段中存储“幸运罢工”,仅按指定的模式解析? 希望大家能帮帮我。
附言我已经看过 lua 手册,但对我没有太大帮助...
【问题讨论】:
-
t = {inputstr:gsub('%s+%-%s+','\0'):match(('.-(%Z+)'):rep(6))}
标签: lua