如何从字符串中提取数字?

如何从字符串中提取每个数字并将它们放入数组中?

例如给定字符串: "\113\115\106\111\117\41\40\105\102\109\109\112\40\42"

点赞
用户7396148
用户7396148

你可以像这样使用 string.gmatch

local my_array = {}
local my_string = "\\113\\115\\106\\111\\117\\41\\40\\105\\102\\109\\109\\112\\40\\42"
print(my_string) --注意字符串是以数字为开头,并用 \ 转义
for number in string.gmatch(my_string, "\\(%d+)") do
   my_array[#my_array + 1] = tonumber(number)
   print(number)
end

这将得到一个包含你的字符串中所有数字的表格。 \ 在我的示例中被转义,以使其等于你所述的字符串。

如果我误解了你的问题,并且你想要的数字来自字符,则需要执行以下操作:

local my_array = {}
local my_string = "\113\115\106\111\117\41\40\105\102\109\109\112\40\42"
print(my_string) --注意字符串是以字母为开头
for char in string.gmatch(my_string, ".") do
    my_array[#my_array + 1] = string.byte(char)
    print(char, my_array[#my_array])
end
2019-04-24 22:15:19