2016-02-04 29 views
1

我在Lua中的异常消息中需要清除需要的参数。 我得到的消息看起来类似于以下内容:从Lua中的异常消息中剥离文件名和细线编号

/path/anotherpath/class.lua:929: attempt to index field '?' (a nil value) 

我想要做的是提取类的名称(“.lua”之前的字)和行号(数字后先“:”) 任何人都可以帮我找到我需要在string.match中使用的模式?

+0

@Egor如果没有的话,你会* *后的回答? – warspyking

回答

3

给予比什么叶戈尔有一个轻微地更完整的答案(这看起来是正确的与它需要.lua文件扩展名的警告):

value = "/path/anotherpath/class.lua:929: attempt to index field '?' (a nil value)" 
filename, linenumstring = value:match(".-([^/:\\]-)%.lua:(%d+):") 
linenum = tonumber(linenumstring)