首页 > 解决方案 > 在lua中拆分算术运算字符串

问题描述

以下是lua中的算术运算字符串。

local str ='x+abc*def+y^z+10'

可以拆分此字符串以便显示单个变量或数字吗?例如,假设 stringstr被拆分为 table s。然后输出将是

s[1] = x
s[2] = abc
s[3] = def
s[4] = y
s[5] = z
s[6] = 10

拆分由运营商完成+,-,*,\,^,%

标签: functionsplitluaargumentslua-table

解决方案


您可以使用 string.gmatch 来迭代您的字符串。随意将其他运算符添加到模式中。

参考https://www.lua.org/manual/5.3/manual.html#6.4.1

local str ='x+abc*def+y^z+10'
local s = {}

for operand in str:gmatch('[^%+%*%^]+') do
  table.insert(s, operand)
end

推荐阅读