使用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'?无论如何我可以做一个解析下一行类型的东西?我该怎么办呢?
答案 0 :(得分:2)
知道在那之后从哪里开始解析b但是我不知道在那之后'数据'会有多长,所以我不知道从哪里开始解析'c'? 无论如何我可以解析下一行类型的东西吗?
是的,只能匹配EOL角色:
for letter, data in s:gmatch('(%w)=(.-)\n') do
print(letter,data)
end
.-
= 0个或更多字符,尽可能少
\n
= EOL字符
括号捕获我们希望gmatch返回的模式的一部分。
您也可以说([^\n]*)
表示0个或更多不换行符。