开源数学表达式解析器?
我用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的数学表达式解析器
仅举几个。