2010-06-20 97 views
1

我用Google搜索了一下,然后空白 - 所以现在是时候再次测试好人了! :)开源数学表达式解析器?

任何人都可以推荐一个开放源代码库(pref为.NET),分析和计算数学表达式?

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

回答

7

我会看看NCalc。以下是对该项目的描述:

NCalc是.NET中的数学表达式求值器。 NCalc可以解析任何表达式并评估结果,包括静态或动态参数和自定义函数。有关该技术的更多信息,我们用来建立这个框架,请阅读这篇文章:http://www.codeproject.com/KB/recipes/sota_expression_evaluator.aspx

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

+0

非常感谢! :) – 2010-06-20 15:07:12

1

那么,我在过去曾使用过IronPython。这实际上是一个非常强大的途径,因为您可以将API暴露给表达式。

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

也有大量的谷歌搜索结果的这个:

NCalc
.NET Math Expression Parser
Mathematical Expression Parser for .NET

只是仅举几例。