我(再次)陷入困境,因为模式。。。所以让我们看看在一点帮助下。。。例如,我有一个由包含以下内容的函数返回的字符串:
📄 My Script ScriptID:RL_SimpleTest Version:0.0.1 ScriptType:MenuScript AnotherKey:AnotherValue And, maybe, some more text...
我想一行一行地解析它,如果该行包含一个“:”,则在变量(k)中获取该行的左侧内容,在另一个变量(v)中获取右侧内容,因此例如,我会让k包含“ScriptID”,v包含第二行的“RL_SimpleTest”(第一行应该被忽略)等等。。。
嗯,我从这样的事情开始:
function RL_Test:StringToKeyValue(str, sep1, sep2) sep1 = sep1 or "\n" sep2 = sep2 or ":" --"%s" local t = {} for line in string.gmatch(str, "([^" .. sep1 .. "]+)") do print(line) for k in string.gmatch(line, "([^" .. sep2 .. "]+)") do --Here is where I'm lost trying to get the key/value pair separately and at the same time... --t[k] = v print(k) end end return t end
抱着希望,一旦我隔离了包含我想要提取的key:value表单中的数据的行,我就可以执行某种for k, v in string.gmatch(line, "([^" .. sep2 .. "]+)")
或类似的操作,这样就可以获得两条数据,但当然,它不起作用,尽管我觉得这是一件微不足道的事,我甚至不知道从何开始,总是因为缺乏模式理解。。。
好吧,我希望至少我暴露了它。。。提前感谢您的帮助。