【问题标题】:Lua and patterns workaroundLua 和模式解决方法
【发布时间】:2015-06-01 22:20:09
【问题描述】:

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

【问题讨论】:

  • 试试s:gmatch("[^|]*\\([^\\|]*)|")

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


【解决方案1】:

试试

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-03
    • 2021-05-21
    • 2015-02-07
    • 2013-08-16
    • 2014-06-21
    • 1970-01-01
    相关资源
    最近更新 更多