【发布时间】: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