【问题标题】:Lua iterate over letter-number pairs from string?Lua从字符串中迭代字母数字对?
【发布时间】:2016-12-15 02:22:35
【问题描述】:

我有一个格式如下的字符串:“a3b12a5g625”。首先是一个字母,然后是一个数字。可以有任意数量的这些对,从 1 到很多。

我对 lua 很陌生,我正在尝试迭代这些对。如何做到这一点?

【问题讨论】:

    标签: lua


    【解决方案1】:

    如果你想分开,那么使用

    local str = "a3b12a5g625"
    for a,b in string.gmatch(str, "(%a+)(%d+)") do
        print(a,b)
    end
    

    【讨论】:

      【解决方案2】:

      您可以将string.gmatchpattern 一起使用:%a+%d+

      local str = "a3b12a5g625"
      for pair in string.gmatch(str, "%a+%d+") do
          print(pair)
      end
      

      输出:

      a3
      b12
      a5
      g625
      

      如果您希望将数字和字母拆分为单独的变量,请将每个模式项包装在一个捕获组中:

      local str = "a3b12a5g625"
      for letters, numbers in string.gmatch(str, "(%a+)(%d+)") do
          print(letters, " ", numbers)
      end
      

      输出:

      a       3
      b       12
      a       5
      g       625
      

      【讨论】:

        猜你喜欢
        • 2013-04-30
        • 1970-01-01
        • 2010-10-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-10-20
        • 2022-06-12
        • 2017-07-30
        相关资源
        最近更新 更多