如何读取字符串的特定部分?

本质上,我需要读取字符串的某个特定部分。

例如:

我有一个包含“12 31”的字符串。 但是,我需要将这些数字放入单独的变量中。只将12排到变量A中,将31排在变量B中。

我该如何处理?

原文链接 https://stackoverflow.com/questions/70470013

点赞
stackoverflow用户10953006
stackoverflow用户10953006

你可以使用Lua Patterns

> ExampleString = "12 31"
> ExampleString:match("(%d+)%s+(%d+)")
12      31
> SubString1, SubString2= ExampleString:match("(%d+)%s+(%d+)")
> Number1 = tonumber(SubString1)
> Number2 = tonumber(SubString2)

模式表达式看起来复杂,但实际上相当简单。括号()之间的东西被称为捕获,如果它们被找到,就会被返回。在这里,我们想要2个结果,所以我们有2对括号()%d+表示我们要查找至少包含1个数字(+)的字符串。

两个数字之间由一些空格%s+分隔,至少1个(+)。

总之,我们想提取(Number1)空格(Number2)

函数string.match用于与给定的模式匹配并返回找到的字符串。最后一步是使用函数tonumber将找到的子字符串转换为Lua数字。

2021-12-24 08:02:02