Function 在lua中拆分算术运算字符串
以下是lua中的一系列算术运算Function 在lua中拆分算术运算字符串,function,split,lua,arguments,lua-table,Function,Split,Lua,Arguments,Lua Table,以下是lua中的一系列算术运算 local str ='x+abc*def+y^z+10' 可以拆分此字符串以显示单个变量或数字吗?例如,假设字符串str被拆分为表s。然后输出将是 s[1] = x s[2] = abc s[3] = def s[4] = y s[5] = z s[6] = 10 拆分是使用运算符+,-,*,\,^,%%完成的。您可以使用string.gmatch对字符串进行迭代。 可以随意向模式添加其他操作符 指 您可以使用string.gmatch来完成所需的操作。您将
local str ='x+abc*def+y^z+10'
可以拆分此字符串以显示单个变量或数字吗?例如,假设字符串str
被拆分为表s
。然后输出将是
s[1] = x
s[2] = abc
s[3] = def
s[4] = y
s[5] = z
s[6] = 10
拆分是使用运算符
+,-,*,\,^,%%
完成的。您可以使用string.gmatch对字符串进行迭代。
可以随意向模式添加其他操作符
指
您可以使用
string.gmatch
来完成所需的操作。您将使用模式%+%-%*%^/
local str ='x+abc*def+y^z+10'
local s = {}
for value in str:gmatch("[%+%-%*%^/]*(%w*)[%+%-%*%^/]*") do
s[#s + 1] = value
end
print(unpack(s))
另外,如果您需要\
作为操作员,如您的问题所示,则需要使用额外的\
进行转义
了解更多lua模式的资源:还可以尝试以下更简单的模式:
local str ='x+(abc*def)+y^z+10'
for w in str:gmatch("%w+") do
print(w)
end
请注意,unpack已移至表中。Lua 5.2中的unpack在使用括号时不起作用。例如
x+(abc*def)+y^z+10
@Maths89我知道。请再读一遍你的问题。我没有看到任何括号。我的回答完美地解决了所描述的问题。我看不懂你的心思。没问题。谢谢你的帮助。
local str ='x+(abc*def)+y^z+10'
for w in str:gmatch("%w+") do
print(w)
end