在Lua中将路径名拆分为其组件的最佳方法是什么

我有一个标准的Windows文件名与路径。我需要从字符串中分割出文件名,扩展名和路径。 我目前正在简单地从最后寻找字符串。切断扩展,并获得第一个路径。 我确信我应该能够使用Lua模式执行此操作,但是当我从字符串的右侧开始工作时,我仍然会失败。 例如。 C: TEMP 测试 myfile.txt的 应该回来 C: TEMP 测试 myfile.txt文件 文本 如果这是重复的话,请提前感谢道歉,但我可以找到很多其他语言的例子,但不是Lua的例子。     
已邀请:
> return string.match([[c:temptestmyfile.txt]], "(.-)([^\]-([^%.]+))$")
c:temptest   myfile.txt  txt
这似乎完全符合你的要求。     
这是一个改进版本,适用于Windows和Unix路径,也可以处理没有点的文件(或带有多个点的文件):
= 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:temptestmyfile.txt]], "(.-)([^\/]-%.?([^%.\/]*))$")
"c:\temp\test\"  "myfile.txt"    "txt"

= string.match([[/test.i/directory.here/filename]], "(.-)([^\/]-%.?([^%.\/]*))$")
"/test.i/directory.here/"   "filename"  "filename"
    
在Lua中拆分字符串? 那里有一些字符串到表的函数,无论如何都将“”拆分为文件夹名称,因此你最终会得到一个表,其中索引1是驱动器,最后一个索引是文件。     

要回复问题请先登录注册