错误处理 – 在Lua中解析错误字符串

可以说我有以下错误字符串:

err = “/mnt/cd4/autorun.lua:43: ‘end’ expected (to close ‘while’ at line 1)
near ‘-eof-‘”

如何从字符串中分别解析文件路径,行号和错误消息?

我以前没有解析Lua字符串的经验,所以我觉得在这里问一下会很有用.我也尝试找到一个解决相同问题的主题,但我找不到一个.

最佳答案 这样的事情应该有效:

err = "/mnt/cd4/autorun.lua:43: 'end' expected (to close 'while' at line 1) near '-eof-'"
local file, line, errmsg = err:match('^(.-):(%d+):(.+)')
print(file, line, errmsg)

模式说:捕获从行尾开始(^)任意符号(.)的最短零个或多个( – ),然后是:,然后是一组一个或多个数字(%d),紧随其后通过:,然后是一组多个符号(.).你可以阅读about patterns here.

点赞