Lua和模式解决方法

时间:2015-03-28 17:19:15

标签: design-patterns lua lua-table lua-patterns

我有一个字符串,其中包含以“|”分隔的文件名(包括完整的完整路径),最后是一个表示当前文件的数字(用于播放器)。 所以我只想保留它的文件名,但是现在我必须使用匹配功能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
    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功能。希望有人可以帮助我。

1 个答案:

答案 0 :(得分:1)

尝试

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