2017-08-02 115 views
1

所以,基本上我试图创建一个函数来解决x的值。如何获得字符串中的字符索引?

例如,x + 4 = 8 所以我试图做到这一点,它用“”代替x,然后它在这个例子中获得符号“+”,并用“” 但为了这样做,而不是删除它后面的虚构符号,我需要使它检查索引是否为1.

我的大脑受伤。

这是我的功能,我删除了一些获取索引的代码,因为它没有工作。

mathMod.solveExpression = function(variable, expression) 
    if (string.find(expression, "=") == nil) then 
     -- void 
    else 
     -- continue with search but with variable 
     if (string.find(expression, variable) == nil) then 
      -- void 
     else 
      -- ooh time for some sneaky equations 
      local copy = expression 

      for i = 1, #expression do 
       local c = expression:sub(i,i) 
       if (expression == c) then 

       end 
      end 
     end 
    end 
end 

/链接到我的Code` https://pastebin.com/DnKPdw2q/

回答

0

如果你的方程是所有形式VAR OP一的= B,试试这个代码,使用了Lua模式匹配:

s=" x + 4 = 8 " 
var,op,a,b = s:match("(%w+)%s*(%p)%s*(%d+)%s*=%s*(%d+)") 
print(var,op,a,b) 

该模式将第一个单词捕获为var,跳过空格,捕获标点符号为操作,跳过空格,捕获s操作数a,跳过可能被空格包围的等号,最后捕获操作数b

相关问题