开源数学表达式解析器?

我用Google搜索并且空白了 – 所以是时候再次测试那些好人了! 🙂

任何人都可以推荐一个解析和计算数学表达式的开源库(pref for .NET)吗?

例如,输入表达式= "2+(n-1)*4" ,参数键/值n=2 ,输出= 6

我想看看NCalc 。 以下是该项目的说明:

NCalc是.NET中的数学表达式计算器。 NCalc可以解析任何表达式并评估结果,包括静态或动态参数和自定义函数。 有关我们用于创建此框架的技术的其他信息,请阅读以下文章: http : //www.codeproject.com/KB/recipes/sota_expression_evaluator.aspx

如果这对于您的目的而言太复杂,您可以查看C#的任何“解析器生成器”。 这些工具允许您指定表达式的语法并生成将解析它的代码。 为numerica表达式编写解析器应该非常简单。 例如,参见

  • 五分钟介绍ANTLR
  • 您也可以尝试使用F#,这是一种很好的语言来解决这类问题。
    参见例如Chris Smith的FsLex Sample

好吧,我过去曾经使用过IronPython 。 这实际上是一个非常强大的路径,因为您可以向表达式公开API。

最重要的是,我相信Irony解析器生成器有一个数学表达式示例解析器。 (如果他们不这样做,那么创造它将是微不足道的。)

Google上也有很多结果:

NCalc
.NET Math Expression Parser
.NET的数学表达式解析器

仅举几个。