当前位置: 首页 > 软件库 > 程序开发 > 常用工具包 >

IKExpression

表达式解析执行器
授权协议 LGPL
开发语言 Java
所属分类 程序开发、 常用工具包
软件类型 开源软件
地区 国产
投 递 者 关玮
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

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并不是最好的选择。

  • 前提:我用的jar包是:ik-expression-2.1.2.jar,一定要注意版本不同的jar,对应的xml的名称也不一样!!!! 1.创建xml:名称为:IKExpression.cfg.xml <?xml version="1.0" encoding="UTF-8"?> <function-configuration> <!-- 系统函数默认配置 --> <bean cl

  • import java.util.ArrayList; import java.util.List; import org.wltea.expression.ExpressionEvaluator; import org.wltea.expression.datameta.BaseDataMeta.DataType; import org.wltea.expression.datameta.Var

  • IKexpression中将RPN转换为抽象语法树,并计算结果的流程 AST结点的设计ExpressionToken 1.结点类型 2.常量值(部分情况) 3.变量值(部分情况) 4.操作符(部分情况) 5.字符序列 6.开始位置 引用类型设计Reference 1.操作符 2.常量数组 3.引用对象计算后的类型 编译栈 1.常量压入栈中 2.如果是操作符时 2.1判断是几元操作符 2.2根据几元

  • 类org.wltea.expression.ExpressionEvaluator public static Object evaluate(String expression, Collection variables) 说明:传入表达式和表达式上下文的变量,执行表达式返回结果 参数1 :String expression, 要传入执行的表达式 参数2 :Collection variable

  • 前言 之前的旧项目中一直在使用ScriptEngine表达式解析引擎,但是使用过程中发现有执行错误的现象,明明为true却返回false,而且不是必现,想了很多办法,最终并没有解决,想着是否换一个试试,就接触了IKExpression。 正文 使用方法 ScriptEngine package com.lk.sydn.common.util; import javax.script.*; imp

  • 将expressionToken转化为逆波兰式, 其中逆波兰式与计算机中函数调用栈吻合 具体可参考百度百科文章逆波兰式 其中问题:为什么需要将IK中element转化为ExpressionToken? /** * 两个栈, * 一个普通栈,用于存储逆波兰式, * 一个是操作符栈,用于存储操作符,并根据操作符的优先级,进行不同的处理 * 算法可参考栈

  • 将字符串解析为单词 代码注释参考github中项目 作者:林良益,卓诗垚 /** * 分层前: * 1.读取字符,一个指针走,一个指针停 * 2.读取字符的结果: * a.没有问题,mark(),mark指针赶上 * b.有问题,reset,指针回退 * 缺点:不能获取有问题的index * * 基本元素:字符,开始位置和当前位置 * 组合:开始位置和当前位置的交互 * *

  • import java.util.Deque; import java.util.List; public class IKExpressRPN { /** * 思路: * stack * opStack * 1.如果是常量,入stack栈 * 2.如果是括号 * a.如果是左括号,入opStack栈 * b.

 相关资料
  • 我正在寻找一个JAVA库来解析 我的要求: 支持所有的值类型(例如int,双,布尔,String等) 支持所有已知的数学 有什么建议吗?

  • 由来 很多JavaBean嵌套有很多层对象,这其中还夹杂着Map、Collection等对象,因此获取太深的嵌套对象会让代码变得冗长不堪。因此我们可以考虑使用一种表达式还获取指定深度的对象,于是BeanResolver应运而生。 原理 通过传入一个表达式,按照表达式的规则获取bean下指定的对象。 表达式分为两种: .表达式,可以获取Bean对象中的属性(字段)值或者Map中key对应的值 []表

  • 编写算术表达式的方法称为notation 。 算术表达式可以用三种不同但等效的符号书写,即不改变表达式的本质或输出。 这些符号是 - Infix Notation 前缀(波兰语)表示法 后缀(反向波兰)表示法 这些符号被命名为它们如何在表达式中使用运算符。 我们将在本章中学到相同的内容。 中缀表示法 我们用中infix表示法编写表达式,例如a - b + c,其中运算符用in操作数之间。 我们人类

  • Java中的正则表达式问题。我正在从元素href属性中提取Id号。我在一个字符串中有一堆这样的链接:

  • 问题内容: 有什么方法可以在python中的流上使用正则表达式匹配吗?喜欢 而且我不想通过获取整个字符串的值来做到这一点。我想知道是否有任何方法可以在srtream上匹配正则表达式(即时)。 问题答案: 我有同样的问题。首先想到的是实现一个类,该类的作用类似于字符串,但仅从流中读取当前所需的数据(我通过重新实现并提取和缓冲字符直到访问的最高位置来完成此操作……)。 这没有解决(我从中得到了“ Ty

  • 本文向大家介绍python生成器表达式和列表解析,包括了python生成器表达式和列表解析的使用技巧和注意事项,需要的朋友参考一下 绝大多数情况下,遍历一个集合都是为了对元素应用某个动作或是进行筛选。如果看过本文的第二部分,你应该还记得有内建函数map和filter提供了这些功能,但Python仍然为这些操作提供了语言级的支持。 如你所见,生成器表达式和列表解析(注:这里的翻译有很多种,比如列表展