格式化字符串以适应 Lua 中的模式?

Format string to fit pattern in Lua?

假设我有一个模式和一个字符串:

String  = "ABCDEF"
Pattern = "%w%w%w - %w%w%w"

如何让String匹配Pattern的格式,变成"ABC - DEF"

使用string.gsub:

string.gsub("ABCDEF", "(%w%w%w)(%w%w%w)", "%1 - %2")

请注意,这将替换所有出现的模式。

字符串、模式和捕获之间没有一对一的匹配。 相同的字符串可以由多个模式生成相同的捕获。 此外,如果您的示例中的 "%w%w%w - %w%w%w" 是 Lua 字符串模式,则 字符串 "ABC - DEF" 与它不匹配。与之匹配的模式可以是 %w%w%w %- %w%w%w%w+%W+%w+%w*%s*.%s*%w* 或其他几个。 所以我建议定义你自己真正需要的规则子集 实现你自己的函数来处理它。