I have a standard Windows Filename with Path. I need to split out the filename, extension and path from the string.
I am currently simply reading the string backwards from the end looking for . to cut off the extension, and the first \ to get the path.
I am sure I should be able to do this using a Lua pattern, but I keep failing when it comes to working from the right of the string.
eg. c:\temp\test\myfile.txt should return
Thank you in advance apologies if this is a duplicate, but I could find lots of examples for other languages, but not for Lua.
Here is an improved version that works for Windows and Unix paths and also handles files without dots (or files with multiple dots):
= string.match([[/mnt/tmp/myfile.txt]], "(.-)([^\\/]-%.?([^%.\\/]*))$")
"/mnt/tmp/" "myfile.txt" "txt"
= string.match([[/mnt/tmp/myfile.txt.1]], "(.-)([^\\/]-%.?([^%.\\/]*))$")
"/mnt/tmp/" "myfile.txt.1" "1"
= string.match([[c:\temp\test\myfile.txt]], "(.-)([^\\/]-%.?([^%.\\/]*))$")
"c:\\temp\\test\\" "myfile.txt" "txt"
= string.match([[/test.i/directory.here/filename]], "(.-)([^\\/]-%.?([^%.\\/]*))$")
"/test.i/directory.here/" "filename" "filename"