抱歉,如果这是重复的。我想我应该稍微修改一下我的问题。
如何使用正则表达式计算数学表达式?不使用 eval 函数。
示例表达式:
math1 = "1+1"
math2 = "3+2-1"
我希望它能像我在示例中展示的那样处理表达式中可变数量的数字。
最佳答案
这只是个坏主意。 Regexp 不是解析器,也不是求值器。
使用语法来描述您的表达式。使用像可爱的 ruby gem 这样的正式解析器解析它 Treetop .然后评估解析器生成的抽象语法树 (AST)。
天啊,树顶的 arithmetic example实际上是免费为您提供解决方案。
关于Ruby 使用正则表达式评估表达式,没有 eval,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15994383/