我想从字符串中删除不在列表中的单词。
例如,我有字符串“我喜欢馅饼和蛋糕”或“馅饼和蛋糕是好的”,并且我要删除不是“ pie ”或“ cake ”的单词,并以“a”结尾字符串为“派蛋糕”。
如果可以从表中加载不删除的单词,那就太好了。
最佳答案
这是另一种解决方案,但是您可能需要修剪结果中的最后一个空格。
acceptable = { "pie", "cake" }
for k,v in ipairs(acceptable) do acceptable[v]=v.." " end
setmetatable(acceptable,{__index= function () return "" end})
function strip(s,t)
s=s.." "
print('"'..s:gsub("(%a+) %s*",t)..'"')
end
strip("i like pie and cake",acceptable)
strip("pie and cake is good",acceptable)
gsub
是这里的重点。使用gsub
和一个函数还有其他变体,而不是为acceptable
设置一个元表。