Lua 用字符代替整数

Lua 用字符代替整数,lua,Lua,我正在做一个项目,我需要找到从字符“K”、“M”或“B”中替换的整数值。 我正在尝试为用户找到最好的方法来输入字符串,例如1k 12k 100k,并以适当的方式接收返回的值。例如,用户输入12k,我将收到12000 我是Lua的新手,我对字符串模式不是很在行 if (string.match(text, 'k')) then print(text) local test = string.match(text, '%d+') print(test) end 您可以像%d+[kmb

我正在做一个项目,我需要找到从字符“K”、“M”或“B”中替换的整数值。 我正在尝试为用户找到最好的方法来输入字符串,例如1k 12k 100k,并以适当的方式接收返回的值。例如,用户输入12k,我将收到12000

我是Lua的新手,我对字符串模式不是很在行

if (string.match(text, 'k')) then
  print(text)
  local test = string.match(text, '%d+')
  print(test)
end 

您可以像%d+[kmb]一样匹配模式,以分别获得数字和后缀。然后只需对第一部分进行编号,然后使用表格将后者映射到一个因子,例如,并将其与结果相乘

局部因子={k=1e3,m=1e6,-[等等]]} 本地数字,后缀=string.matchtext,'%d+[kmb]' 局部结果=tonumbernum*因子[后缀]
您可以像%d+[kmb]一样匹配模式,以分别获得数字和后缀。然后只需对第一部分进行编号,然后使用表格将后者映射到一个因子,例如,并将其与结果相乘

局部因子={k=1e3,m=1e6,-[等等]]} 本地数字,后缀=string.matchtext,'%d+[kmb]' 局部结果=tonumbernum*因子[后缀] 我不知道你用什么因子来表示M和B,那应该是什么?百万和十亿

我建议你使用国际标准。千克,百万米,千兆克

那么看起来是这样的:

 local text = "1k"
 print(tonumber((text:gsub("[mkMG]", {m = "e-3", k="e3", M="e6", G="e9"}))))  --and so on
我不知道你用什么因子来表示M和B,那应该是什么?百万和十亿

我建议你使用国际标准。千克,百万米,千兆克

那么看起来是这样的:

 local text = "1k"
 print(tonumber((text:gsub("[mkMG]", {m = "e-3", k="e3", M="e6", G="e9"}))))  --and so on