Lua遍历字符串中的字母数字对?

我有一个格式像这样的字符串:"a3b12a5g625",首先是一个字母,然后是一个数字。可能会有任意数量的这些对,从1到很多。

我对Lua相当新,我正在尝试遍历这些对。如何做到这一点?

点赞
用户142162
用户142162

你可以使用 string.gmatch 并且结合以下 模式 %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
2016-12-14 18:20:58
用户107090
用户107090

如果你想要分别得到这些匹配值,可以使用:

local str = "a3b12a5g625"
for a,b in string.gmatch(str, "(%a+)(%d+)") do
    print(a,b)
end
2016-12-14 18:22:35