格式化字符串以适应 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*
或其他几个。
所以我建议定义你自己真正需要的规则子集
实现你自己的函数来处理它。
假设我有一个模式和一个字符串:
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*
或其他几个。
所以我建议定义你自己真正需要的规则子集
实现你自己的函数来处理它。