Lua和模式解决方案



我有一个字符串,包含用"|"分隔的文件名(包括完整的完整路径),末尾是一个数字,表示当前文件(用于播放器)。所以我只想用文件名保存它,但现在我必须使用match函数两次,一次用于分离,另一次用于剪切路径。我想知道是否以及如何可能只用一个来做到这一点。Ex。我有:

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
    print(val);
    table.insert(list, {
            type = "item",
            icon = icon;
            text = val:match(".*\(.*)")});
end

我收到:

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

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

尝试

for val in s:gmatch('.-\(%[.-)|') do
    print(val)
end

相关内容

最新更新