比赛结束后Lua Parse

时间:2015-07-22 15:36:04

标签: string parsing lua

使用Lua 5.3我试图解析看起来像。

的字符串
a=data0
b=data
c=data
a=data1
b=data
c=data
a=data2
...

我想解析'b = data& c ='a = data1'发生后的数据'。我知道我可以从string.find(exampleString, 'a=data1')开始,这将给我起始/结束位置,我知道在那之后从哪里开始解析b但是我不知道在那之后'数据'将持续多长时间,所以我不知道从哪里开始解析'c'?无论如何我可以做一个解析下一行类型的东西?我该怎么办呢?

1 个答案:

答案 0 :(得分:2)

  

知道在那之后从哪里开始解析b但是我不知道在那之后'数据'会有多长,所以我不知道从哪里开始解析'c'? 无论如何我可以解析下一行类型的东西吗?

是的,只能匹配EOL角色:

for letter, data in s:gmatch('(%w)=(.-)\n') do
    print(letter,data)
end

.- = 0个或更多字符,尽可能少 \n = EOL字符
括号捕获我们希望gmatch返回的模式的一部分。

您也可以说([^\n]*)表示0个或更多换行符。