Lua string.gsub有多个模式

Pra*_*DTI 5 string lua lua-patterns

我正在重新命名具有不需要的字母的电影标题.在string.gsub可以替换"的字符串"零值,但我有需要与内容替换大约200字符串模式"".

现在我必须string.gsub为每个模式.我在想是否有办法将所有字符串模式放入单行string.gsub.我在网上搜索了解决方案,但仍然没有得到任何东西.

电影标题是这样的B.A.Pass 2013 Hindi 720p DvDRip CROPPED AAC x264 RickyKT ,我想删除喜欢多余的字符2013,Hindi,720p,DvDRip,CROPPED,AAC,x264,RickyKT.

Yu *_*Hao 8

你可以传递给string.gsub一个表作为第三个参数,如下所示:

local movie = "B.A.Pass 2013 Hindi 720p DvDRip CROPPED AAC x264 RickyKT"
movie = movie:gsub("%S+", {["2013"] = "", ["Hindi"] = "", ["720p"] = "", 
                       ["DvDRip"] = "", ["CROPPED"] = "", ["AAC"] = "", 
                       ["x264"] = "", ["RickyKT"] = ""})

print(movie)
Run Code Online (Sandbox Code Playgroud)


cdh*_*wie 1

将所有模式放在一个表中,然后枚举该表,调用string.gsub()每个模式:

str = "B.A.Pass 2013 Hindi 720p DvDRip CROPPED AAC x264 RickyKT"

patterns = {"pattern1", "pattern2", "pattern3"}
for i,v in ipairs(patterns) do
    str = string.gsub(str, v, "")
end
Run Code Online (Sandbox Code Playgroud)

这将需要多次调用string.gsub(),但代码应该比进行大量string.gsub()调用更易于维护。