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