Lua和模式的解决方法

我有一个包含文件名(包括完整路径)的字符串,用“\ |”分隔,末尾是一个数字,表示当前文件(用于播放器)。

所以我只想保留文件名,但现在我必须使用2次匹配函数,一次用于分离,另一次用于剪切路径。我想知道是否可能只使用一个。

例如:

我有:

local s = "W:\\Videos\\Tokyo Ghoul\\[Tokyo Ghoul][EP01]Tragedia.mkv|W:\\Videos\\Tokyo Ghoul\\[Tokyo Ghoul][EP02]Incubación.mkv|W:\\Videos\\Tokyo Ghoul\\[Tokyo Ghoul][EP03]Paloma.mkv|W:\\Videos\\Tokyo Ghoul\\[Tokyo Ghoul][EP04]Cena.mkv|2";

所以我做:

for val in s:gmatch'(.-)|'do
    打印(VAL);
    表格.插入(列表,{
            类型=“项目”,
            图标=图标;
            文本=VAL:匹配(“.*\\(.*)”)});
结束

我收到:

[Tokyo Ghoul][EP01]Tragedia.mkv
[Tokyo Ghoul][EP02]Incubación.mkv
[Tokyo Ghoul][EP03]Paloma.mkv
[Tokyo Ghoul][EP04]Cena.mkv

我想要的只是使用一个gmatch函数。希望有人能帮助我。

点赞
用户107090
用户107090

尝试执行以下代码:

for val in s:gmatch('.-\\(%[.-)|') do
    print(val)
end
2015-03-28 18:34:54