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

时间:2019-04-24 22:07:52

标签: lua

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

例如字符串: “ \ 113 \ 115 \ 106 \ 111 \ 117 \ 41 \ 40 \ 105 \ 102 \ 109 \ 109 \ 112 \ 40 \ 42”

1 个答案:

答案 0 :(得分:1)

您可以像这样使用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) --note how the string is \ followed by digits
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) --note how the string is letters
for char in string.gmatch(my_string, ".") do
    my_array[#my_array + 1] = string.byte(char)
    print(char, my_array[#my_array])
end