Lua:如何从字符串中提取十进制数?

我在Lua中有以下代码:

function getSystemLoad()
   local file = io.popen('./check_cpu.pl')
   local value = file:read('*l')
   file:close()
   return value
end

该函数的输出可能是:CPU OK: 0.51%或者CPU WARNING: 76.5%

我需要这个函数仅返回一个十进制数,在这些情况下为0.5176.5

点赞
用户71376
用户71376
本地函数 `extractDecimalFrom` 的定义:

```lua
local function extractDecimalFrom( str )
  local t = {}
  for i in string.gmatch( str, "[0-9]+%.[0-9]+" ) do  -- 通过正则表达式匹配字符串中的小数
    t[#t+1] = tonumber(i)  -- 将匹配到的小数转化为数字并存入列表中
  end
  return t
end

定义字符串变量 s,值为 "CPU OK: 0.51% or CPU WARNING: 76.5%"

调用 extractDecimalFrom 函数,将字符串 s 作为参数传入,并将返回值存入变量 extractedDecimals

输出 extractedDecimals 列表中的每个元素:

for i=1, #extractedDecimals do
  print(extractedDecimals[i])
end
2016-07-01 08:32:28