String lua字符串获取第n个数字

String lua字符串获取第n个数字,string,lua,String,Lua,我试图在字符串中找到第n个数字。我应该使用string.find吗?如果是,怎么做?我知道参数是要搜索的字符串和要查找的模式,但第三个参数(从何处开始)似乎可以正常工作。 谢谢 您需要创建一个将字符串拆分为数组的函数。一旦你做到了这一点,你将能够返回任何数字的立场,你正在寻找 function findnth(str, nth) local array = {} for i in string.gmatch(str, "%d+") do table.insert(array,

我试图在字符串中找到第n个数字。我应该使用string.find吗?如果是,怎么做?我知道参数是要搜索的字符串和要查找的模式,但第三个参数(从何处开始)似乎可以正常工作。


谢谢

您需要创建一个将字符串拆分为数组的函数。一旦你做到了这一点,你将能够返回任何数字的立场,你正在寻找

function findnth(str, nth)
  local array = {}
  for i in string.gmatch(str, "%d+") do
    table.insert(array, i)
  end
  return array[nth]
end
上述功能的工作原理如下:

print(findnth("1 3 7 2 15 2", 4))
返回:

2

编辑:更改函数以满足OP的特定需要。

字符串。查找
不是您想要使用的。它只是找到一个匹配的模式,虽然它可以按位置搜索,但它不会返回您要查找的内容。例如,字符串是否包含非数字字符?每个数字之间是什么?现在不清楚。
tonumber(str:gsub(“%s*%d%s*”,“”,n-1):匹配“%s*%d%s*”)
Yo-Hao,它将包含数字、字母和符号。几乎所有的事情都是这样。没有空间。所有的字母都是小写的。谢谢你,乔希。del变量的作用是什么?你知道,它是用来充当分隔符的,但它不是必需的。修改函数以满足您的具体需要。无需将它们添加到数组中;只要第四次通过循环返回。如果你打算否决投票并声明“第四次通过循环返回”,你至少可以展示它是如何完成的,因为据我所知,这是最简单的方法。只是一个想法。