【发布时间】:2014-08-26 01:12:13
【问题描述】:
假设我有以下错误字符串:
err = "/mnt/cd4/autorun.lua:43: 'end' 预期(在第 1 行关闭 'while') 靠近'-eof-'”
如何将文件路径、行号和错误消息与字符串分开解析?
我之前没有解析 Lua 字符串的经验,所以我认为在这里询问会很有用。我也尝试找到解决相同问题的主题,但我找不到。
【问题讨论】:
标签: error-handling lua
假设我有以下错误字符串:
err = "/mnt/cd4/autorun.lua:43: 'end' 预期(在第 1 行关闭 'while') 靠近'-eof-'”
如何将文件路径、行号和错误消息与字符串分开解析?
我之前没有解析 Lua 字符串的经验,所以我认为在这里询问会很有用。我也尝试找到解决相同问题的主题,但我找不到。
【问题讨论】:
标签: error-handling 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。
【讨论】:
'^(.-):(%d+):(.*)$'
:%d+: 的错误消息。更新了答案。