我有一个像"12,3,4,5,6,789"
,
我试过
set = {}
for element in string.gmatch("12,3,4,5,6,789", "([^"..", ".."]+)") do
set[element] = true
end
if set[...] then
...
end
检查元素是否在黑名单中。
我的程序将为每个请求处理多个(元素,黑名单)对,对于每对我构建一个集合并仅使用它一次。
我认为它效率低并尝试使用string.match
,但lua中的模式不是标准的RegEx,我无法编写一个可以匹配黑名单开始/中/结尾元素的模式正确的同时。
string.match
会比制作一套更有效吗?答案 0 :(得分:2)
当没有极端情况时,模式匹配最简单:
string.match(","..blacklist..",",
","..element..",")
答案 1 :(得分:0)
简短解决方案:
local blacklist = "31,415,9265,3589,7932,3846,2643,383,279"
local item = "383"
blacklist= ","..blacklist..","
if blacklist:find(","..item..",") then
print("found in the blacklist")
end
ps:这是我对原始任务的理解