在Lua中解析错误字符串

4
假设我有以下错误字符串:
err = "/mnt/cd4/autorun.lua:43: 'end' expected (to close 'while' at line 1) near '-eof-'"
如何从字符串中分别解析文件路径、行号和错误消息?
我没有解析Lua字符串的经验,所以我想在这里问一下。我还尝试找到解决相同问题的主题,但我找不到。
1个回答

2

像这样应该可以正常工作:


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+)的组,接着是:和一个或多个符号(.+)的组。您可以在此处了解有关模式的更多信息

1
这个模式更正确,因为冒号可能出现在错误消息中:'^(.-):(%d+):(.*)$' - Egor Skriptunoff
Egor,您是正确的,尽管我尚未看到包含“:%d +:”的错误消息。回答已更新。 - Paul Kulchenko

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接