IK Expression是一个开源的(OpenSource),可扩展的(Extensible),基于java语言开发的一个超轻量级(Super lightweight)的公式化语言解析执行工具包。
IK Expression V2.0不依赖于任何第三方的java库。它做为一个简单的jar,可以集成于任意的Java应用中。这包括了JavaEE应用(基于应用服务器的), Java桌面应用以及Java WebStart方式的应用。
IK Expression最初诞生的原因是为了能增强工作流引擎,如jBPM等对流程配置的灵活度。使其能在流程运行期获得同配置期一样灵活地对执行逻辑条件 进行变更。经过扩展后的IK Expression还可以适用于各种常规业务系统的动态条件配置,如需要图形化配置应用的场合,或是模拟Excel电子表格的公式运算的场景。
同EL和BeanScript不同,IK Expression的设计目标是面向最终用户的,因此它被设计成语法简单(像数学算式),通俗易懂(支持中文变量及函数名)但功能有限的解析引擎。如果 你需要一个功能强大的表达式引擎,也许IK Expression并不是最好的选择。
IK Expression 组件结构图
代码示例:
/**
* Hello World Example
* @param args
*/
public static void main(String[] args){
if(args.length == 0){
args = new String[1];
args[0] = "IK Expression";
}
//定义表达式
String expression = "\"Hello World \" + 用户名";
//给表达式中的变量userName付上下文的值
List<Variable> variables = new ArrayList<Variable>();
variables.add(Variable.createVariable("用户名", args[0]));
//执行表达式
Object result = ExpressionEvaluator.evaluate(expression, variables);
System.out.println("Result = " + result);
}
import java.util.ArrayList; import java.util.LinkedList; import java.util.List; import org.wltea.expression.ExpressionEvaluator; import org.wltea.expression.datameta.Variable; public class test {
IK Expression是一个开源的(OpenSource),可扩展的(Extensible),基于java语言开发的一个超轻量级(Super lightweight)的公式化语言解析执行工具包。 IK ExpressionV2.0不依赖于任何第三方的java库。它做为一个简单的jar,可以集成于任意的Java应用中。这包括了JavaEE应用(基于应用服务器的), Java桌面应用以
[size=large][b]Version2.1的变更:[/b][/size] 新增org.wltea.expression.ExpressionEvaluator. preparedCompile(String expression , Collection<Variable> variables)方法和类org.wltea.expression.PreparedExpression用来支
[b]Version2.1.2的变更: [/b] 1.根据网友提出的要求,修订了对未声明变量的处理,早期版本不允许变量未申明,将抛出异常。新版本将未申明变量视为 null,这样解决了上下文中对不存在的变量的判断问题,如 “variable == null”将返回 true。 下载地址: [url=http://ik-expression.googlecode.com/files/IKExpress
[b]Version2.1.1的变更: [/b] 1.修订了用户自定义函数参数兼容性BUG,如:double 与Float, float,Long , long,Integer ,int 的兼容性。 [color=red]注:如果函数声明为 Double类型则只能与double相兼容,这与java语法一致。[/color] 下载地址: [url=http://ik-expression.googl
Version2.0.1的变更: [list=1] [*]添加了对表达式的折行书写的支持(即对表达式中出现CRLF的支持),方便于用户编写逻辑复杂的长表达式,增强表达式可阅读性。 [/list] [url=http://linliangyi2007.iteye.com/blog/337069]详细说明请查阅:分享开源表达式解析器IK-Expression2.0[/url]
一、安装ik分词器 因为我安装的 Elasticsearch 是5.6.9版本,所以对应安装 elasticsearch-analysis-ik-5.6.9 版本 $ ./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v5.6.9/elast
我正在寻找一个JAVA库来解析 我的要求: 支持所有的值类型(例如int,双,布尔,String等) 支持所有已知的数学 有什么建议吗?
由来 很多JavaBean嵌套有很多层对象,这其中还夹杂着Map、Collection等对象,因此获取太深的嵌套对象会让代码变得冗长不堪。因此我们可以考虑使用一种表达式还获取指定深度的对象,于是BeanResolver应运而生。 原理 通过传入一个表达式,按照表达式的规则获取bean下指定的对象。 表达式分为两种: .表达式,可以获取Bean对象中的属性(字段)值或者Map中key对应的值 []表
编写算术表达式的方法称为notation 。 算术表达式可以用三种不同但等效的符号书写,即不改变表达式的本质或输出。 这些符号是 - Infix Notation 前缀(波兰语)表示法 后缀(反向波兰)表示法 这些符号被命名为它们如何在表达式中使用运算符。 我们将在本章中学到相同的内容。 中缀表示法 我们用中infix表示法编写表达式,例如a - b + c,其中运算符用in操作数之间。 我们人类
Java中的正则表达式问题。我正在从元素href属性中提取Id号。我在一个字符串中有一堆这样的链接:
IK-Expression 是一个开源的(OpenSource),可扩展的(Extensible),基于java语言开发的一个超轻量级(Super lightweight)的公式化语言解析执行工具包。 IK Expression V2.0不依赖于任何第三方的java库。它做为一个简单的jar,可以集成于任意的Java应用中。这包括了JavaEE应用(基于应用服务器的), Java桌面应用以及Jav
问题内容: 有什么方法可以在python中的流上使用正则表达式匹配吗?喜欢 而且我不想通过获取整个字符串的值来做到这一点。我想知道是否有任何方法可以在srtream上匹配正则表达式(即时)。 问题答案: 我有同样的问题。首先想到的是实现一个类,该类的作用类似于字符串,但仅从流中读取当前所需的数据(我通过重新实现并提取和缓冲字符直到访问的最高位置来完成此操作……)。 这没有解决(我从中得到了“ Ty
本文向大家介绍python生成器表达式和列表解析,包括了python生成器表达式和列表解析的使用技巧和注意事项,需要的朋友参考一下 绝大多数情况下,遍历一个集合都是为了对元素应用某个动作或是进行筛选。如果看过本文的第二部分,你应该还记得有内建函数map和filter提供了这些功能,但Python仍然为这些操作提供了语言级的支持。 如你所见,生成器表达式和列表解析(注:这里的翻译有很多种,比如列表展
问题内容: 如何允许用户以安全的方式执行数学表达式?我需要写一个完整的解析器吗? 是否有类似ast.literal_eval()的东西,但用于表达式? 问题答案: “ Pyparsing示例”页面列出了几个表达式解析器: http://pyparsing.wikispaces.com/file/view/fourFn.py-使用pyparsing的常规算术中缀表示法解析器/评估器实现(尽管它的名称