2014-01-29 150 views
1

我想采取一个字符串表示文件路径,剥离文件名并保存路径。Lua模式匹配路径

举例来说,如果我有:

"/folder1/folder2/file.name" 

,我想在我的字符串"/folder1/folder2/"结束了。

我一直在玩弄string.match()作为记录在这里:http://lua-users.org/wiki/StringLibraryTutorial

我有以下代码:

mystring = "/var/log/test.log" 
print(string.match(mystring, "%/")) 

当我运行该脚本,我最终只是一个“/”返回。 我期待它会返回字符串中两个'/'的位置。 我也试过用"/"代替"%/"这个模式,但是这给了我相同的结果。

我确定我错过了一些非常简单的东西,但我看不到它是什么。

回答

3

由模式%//,你告诉string.match寻找一个字符串/,这就是你得到了什么。试试这个:

local mystring = "/var/log/test.log" 
print(string.match(mystring, ".+/")) 

这里的格局.+/手段来寻找接着是/一个或多个的任何字符(.)。 +意味着它是贪婪的,即尽可能长时间匹配。

+0

无需转义'/'。 – lhf

+0

@lhf现在修正了,有时我忘了什么是魔法字符。但是转义'/'也可以运行,这也是我喜欢Lua的原因之一。尽管如此, –

+0

在转义序列中失败。 – dualed