Lua:string.gsub 个模式以允许多个模式替换
Lua: string.gsub pattern(s) to permit multiple pattern replacement
此主题之前已由另一个用户在线程中部分处理过:
Lua string.gsub with Multiple Patterns
我遇到了问题,我相信这是我的模式(第二个)论点。这是我尝试使用的 gsub
代码示例:
local dateCode = "MMM/dd-YYYY:ss"
--dateCode = dateCode:gsub(".*", {["%/"] = "s", ["%-"] = "n", ["%:"] = "c"}) --original code but removed after @Etan's comments.
dateCode = dateCode:gsub(".*", {["/"] = "s", ["-"] = "n", [":"] = "c"})
print(dateCode)
MMM/dd-YYYY:ss --printed
MMMsddnYYYYcss --desired
我认为我不应该像现在那样查看所有字符,但我不确定我应该为 dateCode
变量使用什么模式。
这个想法是用它开头的第一个字母字符替换键。
由于您想要替换 select 组字符,请将它们放入字符集中作为模式:
dateCode = dateCode:gsub("[/:-]", {["/"] = "s", ["-"] = "n", [":"] = "c"})
当前发生的情况是,使用 .*
模式,它匹配整个字符串。由于字符串 "MMM/dd-YYYY:ss"
在散列 table(第二个参数)中没有索引值,因此实际上没有发生替换。
此主题之前已由另一个用户在线程中部分处理过: Lua string.gsub with Multiple Patterns
我遇到了问题,我相信这是我的模式(第二个)论点。这是我尝试使用的 gsub
代码示例:
local dateCode = "MMM/dd-YYYY:ss"
--dateCode = dateCode:gsub(".*", {["%/"] = "s", ["%-"] = "n", ["%:"] = "c"}) --original code but removed after @Etan's comments.
dateCode = dateCode:gsub(".*", {["/"] = "s", ["-"] = "n", [":"] = "c"})
print(dateCode)
MMM/dd-YYYY:ss --printed
MMMsddnYYYYcss --desired
我认为我不应该像现在那样查看所有字符,但我不确定我应该为 dateCode
变量使用什么模式。
这个想法是用它开头的第一个字母字符替换键。
由于您想要替换 select 组字符,请将它们放入字符集中作为模式:
dateCode = dateCode:gsub("[/:-]", {["/"] = "s", ["-"] = "n", [":"] = "c"})
当前发生的情况是,使用 .*
模式,它匹配整个字符串。由于字符串 "MMM/dd-YYYY:ss"
在散列 table(第二个参数)中没有索引值,因此实际上没有发生替换。