此主题已由线程中的其他用户部分处理: 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
变量使用什么模式。
我们的想法是用它开头的第一个字母字符替换键。
答案 0 :(得分:3)
由于您需要替换一组精选字符,请将它们作为模式放入字符集中:
dateCode = dateCode:gsub("[/:-]", {["/"] = "s", ["-"] = "n", [":"] = "c"})
当前发生的情况是,模式.*
到位后,它与整个字符串匹配。由于字符串"MMM/dd-YYYY:ss"
在哈希表(第二个参数)中没有索引值,因此实际上不会发生替换。