Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 仅使用模式匹配提取文件名_String_Lua_Pattern Matching_Lua Patterns - Fatal编程技术网

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创建它,当您有一个文件已经有了这样的名称时,它会添加许多有趣的事件。