公式解析器開源項目整理

        前段日子師兄讓我整理開源的公式解析器項目,我到網上查了兩天,對大部分有人維護的開源項目進行了整理和總結:如今記在此處。 html

開源項目名稱 描述 缺點
Jeval

在運行時解析計算靜態和動態表達式;支持數學,布爾,字符串,函數表達式;支持大部分的數學和布爾運算符;支持自定義函數;支持嵌套函數;支持解析;支持自定義變量解析器; java

官網:http://jeval.sourceforge.net 正則表達式

不支持嵌套變量
jexel

處理大部分的數學公式和字符串,經過繼承接口來實現我的所需的運算;支持自定義變量解析器;該項目一直在更新,最近一次更新是今年十月七號 shell

wiki:http://code.google.com/p/jexel/w/list 數組

不支持變量替換
aviator

Aviator是直接將表達式編譯成Java字節碼,交給JVM去執行 函數

支持大部分運算操做符,包括算術操做符、關係運算符、邏輯操做符、位運算符、正則匹配操做符(=~)、三元表達式?: ,而且支持操做符的優先級和括號強制優先級;支持函數調用和自定義函數;支持傳入變量,支持相似a.b.c的嵌套變量訪問;支持數組的訪問;支持正則表達式; google

http://www.blogjava.net/killme2008/archive/2010/09/07/331296.htm spa

依賴兩外兩個jarcommons-beanutils和commons-logging 
arity 自定義函數及公式 不支持變量替換
Jsci 數學科學計算:包括線性方程組,統計,小波,牛頓力學。 jar包太多,不支持變量替換
IKExpressoin 支持中文變量及函數名;支持基本運算;函數運算;支持自定義函數; 不支持變量嵌套
JSEL 兼容 JavaScript 運算規則的簡單的表達式解釋引擎,能夠經過Map接口,或者JavaBean給出一個變量集合,能後經過表達式從這個集合中抽取變量,再經過表達式邏輯生成你須要的數據;支持函數擴展,操做符別名定義,操做符定義 不支持變量嵌套
jep

支持大量的數學運算;其餘功能都差很少;支持變量嵌套(順序執行) .net

wiki:http://www.singularsys.com/jep/doc/html/variables.html code

beanshell 基本運算;變量、函數自定義;支持變量嵌套(順序執行)
Fel 支持中文變量;支持基本運算;函數運算;支持自定義函數;可調用java方法; 不支持變量嵌套
相關文章
相關標籤/搜索