2016-02-04 24 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)