解析 LUA 中的字符串

我一直在寻找并阅读了很多不同的答案,但没有一个能够回答我的具体请求。

我使用一个名为 'WATCHMAKER' 的应用程序为 Wear OS 2 制作表盘,该应用程序使用 LUA 作为编程语言。我想制作一个特殊的时钟表盘,根据连接到身体的发射器发送的血糖值指向不同的数字。

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

<十进制数字><箭头>(<时间>)

一个例子是

5,6 ->(1m)

我想提取阅读中的 <十进制数字> 部分。在上面的例子中,我需要值为 5,6

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

非常感谢你的帮助

点赞
用户997253
用户997253

假设你有一个字符串,在 LUA 中,s="14,11 -> (something)", 你希望将这个字符串的第一个数字解析为浮点数,这样你就可以进行数学运算了。

s='9,6 -> (24m)'
-- 现在我们使用所谓的正则表达式
-- 来解析字符串
new_s=string.match(s, '[0-9]+,[0-9]+')
-- 现在,new_s 里包含了数字 9,6,已经被解析了
-- 但是它仍然是一个字符串,为了能够像数字一样对待它
-- 我们需要做更多的工作:
-- 但我们需要将逗号替换为句号
new_s=new_s:gsub(",",".")
-- 现在,s 变成了一个字符串 "9.6"
-- 现在,我们将它转换为数字
number = string.format('%.10g', tonumber(new_s))
print(number)

现在,number 包含了数字 9.6

2018-09-07 19:24:09