String 如何将数字与小数点匹配
我想将两个单独的变量设置为字符串中的两个不同的数字 我使用了一个像“100125”这样的字符串,我能够得到这两个数字,但一旦我将字符串更改为包含小数(如“100.172125.181”),它将返回小数后的数字String 如何将数字与小数点匹配,string,lua,String,Lua,我想将两个单独的变量设置为字符串中的两个不同的数字 我使用了一个像“100125”这样的字符串,我能够得到这两个数字,但一旦我将字符串更改为包含小数(如“100.172125.181”),它将返回小数后的数字 local x,y=string.match(“100125”、“(%d+)、(%d+)”) --此代码有效,使x=100,y=125 然而 local x,y=string.match(“100.134125.122”,“(%d+,(%d+)”) --这不正确 使用后一种方法,我将变
local x,y=string.match(“100125”、“(%d+)、(%d+)”)
--此代码有效,使x=100,y=125
然而
local x,y=string.match(“100.134125.122”,“(%d+,(%d+)”)
--这不正确
使用后一种方法,我将变量x和y设置为小数后的数字。我想我应该将字符串重新格式化为类似“100.1x125.5”的格式,但我不确定。感谢并抱歉初学者提出的问题
%d
只匹配0到9之间的数字。您也希望匹配小数点,因此应使用集合[%d.]
匹配任何数字或句点
因此,将模式更改为以下内容:
local x, y = string.match("100.134,125.122", "([%d.]+),([%d.]+)")
print(x)
print(y)
这将正确打印:
100.134
125.122
您可能需要安装:
> split = require("split")
> s = "100.134,125.122"
> x,y = table.unpack(split.split(s, ","))
> x
100.134
> y
125.122