String 仅使用模式匹配提取文件名
是否可以使用String 仅使用模式匹配提取文件名,string,lua,pattern-matching,lua-patterns,String,Lua,Pattern Matching,Lua Patterns,是否可以使用string.match并返回捕获,直到最后一个字符停止在扩展部分 local str = "filename.lua.txt" local cap = str:match("(.+)%..+") print(cap) 输出:filename.lua 这个模式的关键是+的贪婪性,并使用%.来表示文本使用+而不是*,因为这两个部分不能都是空的?@user2779657听起来不错。我没有使用+,因为我不确定这两个部分在所有操作系统中都不能为空。在任何当前操作系统中,这两个部分都可以为空
string.match
并返回捕获,直到最后一个
字符停止在扩展部分
local str = "filename.lua.txt"
local cap = str:match("(.+)%..+")
print(cap)
输出:filename.lua
这个模式的关键是
+
的贪婪性,并使用%.
来表示文本
使用+
而不是*
,因为这两个部分不能都是空的?@user2779657听起来不错。我没有使用+
,因为我不确定这两个部分在所有操作系统中都不能为空。在任何当前操作系统中,这两个部分都可以为空。所有系统都允许使用.foo
或bar
这样的文件名。@dualed至少WindowsXP不允许使用.foo
这样的文件名。您无法通过explorer创建它,当您有一个文件已经有了这样的名称时,它会添加许多有趣的事件。