在Lua中解析错误字符串

假设我有以下错误字符串:

err = "/mnt/cd4/autorun.lua: 43:'end'期望(关闭第1行的“while”) 附近的-eof-“

如何从字符串中单独解析文件路径、行号和错误消息?

我以前没有解析Lua字符串的经验,所以我想在这里提问会很有用。我还尝试找到解决同样问题的主题,但我找不到。

点赞
用户1442917
用户1442917
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)

这个模式表达式的意思是:从行末开始匹配(^),匹配尽量少的 0 个或多个任何符号(.-),接着是:,接着是 1 个或多个数字(%d+),然后是冒号,然后是 1 个或多个符号(.+)。您可以在此处了解模式表达式的更多信息。

2014-07-04 17:21:17