在LUA

时间:2018-09-07 17:20:35

标签: parsing lua

我一直在环顾四周,阅读了许多不同的答案,但似乎没有一个人可以回答我的具体要求。

我使用名为“ WATCHMAKER”的应用程序为Wear OS 2做表面处理,女巫使用LUA作为语言。我想制作一个带有特殊时钟的表盘,该时钟指向一个数字,具体取决于与身体相连的变送器发送的血糖值。

我要解析的字符串值遵循以下语法:

<DECIMAL NUMBER> <ARROW> (<TIME>)

一个例子是

5,6 -> (1m)

我想提取阅读内容的<DECIMAL NUMBER>部分。在上面的示例中,我想要值5,6

每隔5分钟,发送器发送一次读数,所有这些信息都会更改: 5,8-(30秒)

非常感谢您

1 个答案:

答案 0 :(得分:1)

假设您在LUA中有一个字符串,s="14,11 -> (something)",并且希望将字符串的第一个数字解析为浮点数,以便可以对其进行数学运算。

s='9,6 -> (24m)'
-- Now we use so called regular expressions
-- to parse the string
new_s=string.match(s, '[0-9]+,[0-9]+')
-- news now has the number 9,6. Which is now parsed
-- however it's still a string and to be able to treat
-- it like a number, we have to do more:
-- But we have to switch the comma for a period
new_s=new_s:gsub(",",".")
-- Now s has "9.6" as string
-- now we convert it to a number
number = string.format('%.10g', tonumber(new_s))
print(number)

现在number包含数字9.6