【问题标题】:Format string to fit pattern in Lua?格式化字符串以适应Lua中的模式?
【发布时间】:2018-02-05 05:46:09
【问题描述】:

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

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

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

【问题讨论】:

  • String = String:gsub("()",{[4]=" - "})
  • 不清楚:能不能换个花样?如果是,请参阅 Yu 的回答。如果不是,请更详细地解释当前情况。

标签: string lua lua-patterns


【解决方案1】:

使用string.gsub:

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-09-27
      • 2011-03-29
      • 2014-02-07
      • 1970-01-01
      • 1970-01-01
      • 2015-02-02
      • 2021-06-07
      • 1970-01-01
      相关资源
      最近更新 更多