如何将数字与小数点匹配

时间:2019-04-22 01:51:09

标签: string lua

我想将两个单独的变量设置为字符串中的两个不同数字。

我使用了一个类似“ 100,125”的字符串,并且能够获得两个数字,但是一旦我将该字符串更改为包含小数(例如“ 100.172,125.181”),它将返回小数之后的数字。

local x, y = string.match("100,125", "(%d+),(%d+)")
--this code works, making x = 100 and y = 125

但是

local x, y = string.match("100.134,125.122", "(%d+),(%d+)")
--this did not work correctly

使用后一种方法,我最终将变量x和y设置为小数点后的数字。我认为我应该将字符串重新格式化为“ 100.1x125.5”,但是我不确定。谢谢,很抱歉初学者的问题

2 个答案:

答案 0 :(得分:1)

%d仅匹配0到9之间的数字。您也希望匹配小数点,因此您应该使用[%d.]设置来匹配任何数字期间。

因此将模式更改为以下内容:

local x, y = string.match("100.134,125.122", "([%d.]+),([%d.]+)")
print(x)
print(y)

这可以正确打印:

100.134
125.122

答案 1 :(得分:0)

您可能要安装split rock

> split = require("split")
> s = "100.134,125.122"
> x,y = table.unpack(split.split(s, ","))
> x
100.134
> y
125.122