String 如何在某个字符开始一个字符串,并在某个字符结束它?(卢阿)

String 如何在某个字符开始一个字符串,并在某个字符结束它?(卢阿),string,lua,String,Lua,这是我的问题。我正在使用Lua,我有一个字符串,看起来像这样: “开始1.2.3.4.5-1.2.3.4.5-1.2.3.4.5-1.2.3.4.5结束” 每个连字符之间的五个数字都与同一个“对象”配对,但每个数字表示一组单独的数据。数字之间的周期分隔数据 所以在开始之后,1=我们的第一个值,2=我们的第二个值,3=我们的第三个值,4=我们的第四个值,5=我们的第五个值。这5个值存储在同一个对象中。然后我们点击第一个连字符,它将“对象”分隔开。所以有5个对象,每个对象有5个值 我以1.2.3.4

这是我的问题。我正在使用Lua,我有一个字符串,看起来像这样:

“开始1.2.3.4.5-1.2.3.4.5-1.2.3.4.5-1.2.3.4.5结束”

每个连字符之间的五个数字都与同一个“对象”配对,但每个数字表示一组单独的数据。数字之间的周期分隔数据

所以在开始之后,1=我们的第一个值,2=我们的第二个值,3=我们的第三个值,4=我们的第四个值,5=我们的第五个值。这5个值存储在同一个对象中。然后我们点击第一个连字符,它将“对象”分隔开。所以有5个对象,每个对象有5个值

我以1.2.3.4.5为例,但这些数字将随机化,最多4位。所以它可以说像Start12.3.100.1025.50之类的东西-等等

希望这是有道理的。以下是我迄今为止所做的工作:

MyString=我在上面发布的长字符串

localextracted=string.match(MyString,“Start(.*))

这将返回字符串中除Start以外的所有内容。但是,我希望它在开始后返回所有内容,然后在到达下一个连字符时将其切断。然后从那一点开始,我将重复这个过程,但取而代之的是找到连字符之间的所有内容,直到结束。我还需要过滤掉句号。此外,连字符/句点可以更改为其他字符,只要它们不是数字


有什么办法吗?

只需使用一种模式来捕获任何包含数字和句点的内容

“([%d%.]+)”
请注意,您必须使用
%
转义句点,因为它是一个神奇的字符

local text = "Start1.2.3.4.5-1.2.3.4.5-1.2.3.4.5-1.2.3.4.5-1.2.3.4.5End"

for set in text:gmatch("([%d%.]+)") do
 print(set)
 local numbers = {}
 for num in set:gmatch("%d+") do
   table.insert(numbers, num)
 end
 print(table.unpack(numbers))
end
印刷品:

1.2.3.4.5
1   2   3   4   5
1.2.3.4.5
1   2   3   4   5
1.2.3.4.5
1   2   3   4   5
1.2.3.4.5
1   2   3   4   5
1.2.3.4.5
1   2   3   4   5

如果两个周期之间的数字超过一位数,这是否有效?这也是他的问题的一个方面。@Corsaka+匹配一个或多个。但是,即使不是,我也不会认为留一些空间留给自己的脑力是不好的。请记住,这不是编码服务。