`
linliangyi2007
  • 浏览: 1017904 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

发布IK Expression开源表达式解析器 V2.1.2

阅读更多
Version2.1.2的变更:

1.根据网友提出的要求,修订了对未声明变量的处理,早期版本不允许变量未申明,将抛出异常。新版本将未申明变量视为 null,这样解决了上下文中对不存在的变量的判断问题,如 “variable == null”将返回 true。


下载地址:
IKExpressionV2.1.2 完整发布包

IKExpressoin简易表达式引擎V2.1.0使用说明.pdf

google code开源地址:http://code.google.com/p/ik-expression/

更多详细请参阅RAR包内的《IKExpressoin简易表达式引擎V2.1.0使用说明.doc》文档
分享到:
评论
10 楼 kilo8850 2009-11-23  
曾经给你提过添加compile的建议,在2.1.2版本中也确实出现了compile方法
但在应用中,实际上还是有问题。
如果不给变量赋值的话,编译是会报错的
比如这样的代码。

String expression ="(0<得分 && 得分<=20)?10:10.2";
ExpressionEvaluator.compile(expression);
会抛出异常错误。
而在实际使用过程中,往往会是用户录入了一个表达式,这时他并不知道“得分”这个变量的具体值,但想知道自己录入的公式是否合法,而用compile方法没有办法实现这一点。
不知道是我程序写的不对还是什么其他原因。
9 楼 linliangyi2007 2009-11-12  
Xiehgjava 写道
我这边刚好需要对数据进行处理,然后想以表达式的形式记录每个字段的处理方式,以后该字段就根据这个表达式来进行自动的处理。
当然这个表达式有业务人员来配置,我只用关注需要抽象出来的方法即可,不知道楼主有没有什么好的建议可以借鉴一下么?


从你的描述上看,IK应该适用。我们这边的OA也是这么用的
8 楼 Xiehgjava 2009-11-12  
我这边刚好需要对数据进行处理,然后想以表达式的形式记录每个字段的处理方式,以后该字段就根据这个表达式来进行自动的处理。
当然这个表达式有业务人员来配置,我只用关注需要抽象出来的方法即可,不知道楼主有没有什么好的建议可以借鉴一下么?
7 楼 Xiehgjava 2009-11-12  
linliangyi2007 写道
Xiehgjava 写道
然后,我定义了String ABC="ABC";
String expression = ABC+"(123+10)";
也报类型的错。。



汗死,你这个定义的是java变量啊,你要设置到表达式上下文中啊,看一下文档吧

啊,原来如此,谢谢楼主~~~楼主回贴真及时,谢谢!!
6 楼 linliangyi2007 2009-11-12  
Xiehgjava 写道
然后,我定义了String ABC="ABC";
String expression = ABC+"(123+10)";
也报类型的错。。



汗死,你这个定义的是java变量啊,你要设置到表达式上下文中啊,看一下文档吧
5 楼 linliangyi2007 2009-11-12  
Xiehgjava 写道
楼主~
  
    我发现我对不同数据类型的字符串连接:“ABC”+(123+10),会报错。。
代码如下:
  	public static void main(String[] args) {
		// TODO Auto-generated method stub		
				String expression = "ABC+(123+10)";
				Object result=ExpressionEvaluator.evaluate(expression, null);
				
				System.out.println("Result=" + result);
				
		}

报错如下:
  表达式不合法,变量"ABC"缺少定义;位置:0
处理对象:ABC
处理位置:0
at org.wltea.expression.ExpressionExecutor.convertToRPN(ExpressionExecutor.java:85)
at org.wltea.expression.ExpressionEvaluator.evaluate(ExpressionEvaluator.java:43)
at com.sunyard.expression.operate.TestOne.main(TestOne.java:22)
Exception in thread "main" java.lang.RuntimeException: 表达式:"ABC+(123+10)" 执行异常
at org.wltea.expression.ExpressionEvaluator.evaluate(ExpressionEvaluator.java:52)
at com.sunyard.expression.operate.TestOne.main(TestOne.java:22)


哈哈,你漏了一层的引号啊。

String expression = "ABC+(123+10)",这个对于表达式而言,等价于 ABC+(123+10);ABC没有引号,表达式将认为这个是你声明的变量。

你希望的表达式要写成  String expression = "\"ABC\"+(123+10)"
4 楼 Xiehgjava 2009-11-12  
然后,我定义了String ABC="ABC";
String expression = ABC+"(123+10)";
也报类型的错。。

3 楼 Xiehgjava 2009-11-12  
楼主~
  
    我发现我对不同数据类型的字符串连接:“ABC”+(123+10),会报错。。
代码如下:
  	public static void main(String[] args) {
		// TODO Auto-generated method stub		
				String expression = "ABC+(123+10)";
				Object result=ExpressionEvaluator.evaluate(expression, null);
				
				System.out.println("Result=" + result);
				
		}

报错如下:
  表达式不合法,变量"ABC"缺少定义;位置:0
处理对象:ABC
处理位置:0
at org.wltea.expression.ExpressionExecutor.convertToRPN(ExpressionExecutor.java:85)
at org.wltea.expression.ExpressionEvaluator.evaluate(ExpressionEvaluator.java:43)
at com.sunyard.expression.operate.TestOne.main(TestOne.java:22)
Exception in thread "main" java.lang.RuntimeException: 表达式:"ABC+(123+10)" 执行异常
at org.wltea.expression.ExpressionEvaluator.evaluate(ExpressionEvaluator.java:52)
at com.sunyard.expression.operate.TestOne.main(TestOne.java:22)
2 楼 linliangyi2007 2009-10-10  
gtman 写道
String text = "薇欧薇VOV化妆调肤粉底液(2色)普通装规格另见包装";
String keyword = "粉底乳";

使用官方3.1.1PDF中的例子,居然不能命中。。

第一次使用,程序中如何写才能命中这句?


兄弟,你发错帖子了吧




1 楼 gtman 2009-10-10  
String text = "薇欧薇VOV化妆调肤粉底液(2色)普通装规格另见包装";
String keyword = "粉底乳";

使用官方3.1.1PDF中的例子,居然不能命中。。

第一次使用,程序中如何写才能命中这句?

相关推荐

    IK Expression开源表达式解析器 V2.1.2.rar

    IK Expression开源表达式解析器V2.1.2是一款用于处理和解析文本表达式的强大工具,广泛应用于各类软件开发和数据分析场景。它以其高效、灵活和可扩展性著称,为开发者提供了便捷的方式来处理和执行复杂的逻辑表达式...

    IK Expression(表达式引擎)

    IK Expression 是一个开源的(OpenSource),可扩展的(Extensible), 基于java 语言开发的一个超轻量级(Super lightweight)的公式化语言解析执行 工具包。它是一个采用逆波兰式算法结合指针栈优化的公式解析引擎...

    IK Expression V2.0

    IK Expression是一个开源的(OpenSource),可扩展的(Extensible),基于java语言开发的一个超轻量级(Super lightweight)的公式化语言解析执行工具包。 IK Expression V2.0不依赖于任何第三方的java库。它做为...

    IKExpression表达式解析器

    IK Expression是一个开源的(OpenSource),可扩展的(Extensible),基于java语言开发的一个超轻量级(Super lightweight)的公式化语言解析执行工具包。 IK ExpressionV2.0.5不依赖于任何第三方的java库。它做为一...

    表达式解析器 IKExpression

    IK Expression是一个开源的(OpenSource),可扩展的(Extensible),基于java语言开发的一个超轻量级(Super lightweight)的公式化语言解析执行工具包。 IK ExpressionV2.X.X不依赖于任何第三方的java库。它做为一...

    IKExpression2.1.2.jar

    IKExpression2.1.2.jar

    ik-expression源代码

    IK Expression是一个开源的(OpenSource),可扩展的(Extensible),基于java语言开发的一个超轻量级(Super lightweight)的公式化语言解析执行工具包。 IK ExpressionV2.0不依赖于任何第三方的java库。它做为一...

    IKExpression-2.1.2-SNAPSHOT

    IKExpression-2.1.2-SNAPSHOT.jar 找了很久才找到,,maven下载不下来,,备个份。

    IK 的jar包

    在本压缩包中,"IKExpressionV2.1.2AllInOne"表示的是IK分词器的一个版本,截至2018年11月8日,这是它的最新版本。 IK分词器的核心功能是对中文文本进行精确、快速的分词处理。它提供了两种模式:精确模式和全模式...

    基于java的表达式运算IK Expression

    IK Expression 是一个开源的(OpenSource),可扩展的(Extensible), 基 于java 语言开发的一个超轻量级(Super lightweight)的公式化语言解析执行 工具包。IK Expression 不依赖于任何第三方的java 库。它做为一...

    IKExpression技术 运算表达式完美解析

    例如,"2+3*4"这样的表达式可以通过IKExpression轻松解析并得出正确结果。此外,它还允许用户自定义运算符,扩展其功能。 对象表达式是IKExpression的另一个亮点。开发者可以利用该特性直接操作对象的属性或者调用...

    IKExpressoin简易表达式引擎V2.1.0使用说明.rar_IKExpressoin_V2 _ik表达式

    IKExpression是一款针对Java平台的轻量级表达式引擎,主要用于解析和执行用户自定义的表达式,从而实现程序的动态配置和灵活性。IKExpression V2.1.0是该引擎的升级版本,提供了更高效、稳定和易用的特性。 在...

    Elasticsearch的开源中文分词器 IK Analysis.zip

    IK中文分词器在Elasticsearch上的使用。原生IK中文分词是从文件系统中读取词典,es-ik本身可扩展成从不同的源读取词典。目前提供从sqlite3数据库中读取。es-ik-plugin-sqlite3使用方法: 1. 在elasticsearch.yml中...

    IKAnalyzer开源轻量级中文分词工具包2012u6

    IK Analyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包。从2006年12月推出1.0版开始, IKAnalyzer已经推出了4个大版本。最初,它是以开源项目Luence为应用主体的,结合词典分词和文法分析算法的中文...

    IKAnalyzer中文分词器v2012使用手册.pdf

    标题:"IKAnalyzer中文分词器v2012使用手册" 所述的知识点包括: IKAnalyzer是一款开源的基于Java语言开发的轻量级中文分词工具包,最早版本于2006年12月发布。作为一个文本分析组件,它最初是作为开源项目Lucene的...

    elasticsearch的ik中文分词器

    **Elasticsearch与IK中文分词器** Elasticsearch(ES)是一款强大的开源搜索引擎,它基于Lucene构建,提供实时、分布式、可扩展的搜索和分析能力。在处理中文文档时,由于中文句子中词语之间没有明显的分隔符,因此...

    IKAnalyzer中文分词器V3.2使用

    **IKAnalyzer中文分词器V3.2使用详解** IKAnalyzer是一款开源的、适用于Java环境的中文分词器,主要用于解决在信息检索、文本挖掘等领域中遇到的中文处理问题。这款分词器的设计目标是提高分词的准确率,并且具有...

    IKAnalyzer中文分词器V2012使用手册_20190806.pdf

    IKAnalyzer是一个开源的中文分词器,基于Java语言开发,它是一个轻量级的中文分词工具包。IKAnalyzer自2006年12月推出1.0版本以来,已经发展到了2012版本。这个分词器最初是基于开源项目Lucene的词典分词和文法分析...

    IK Analyzer 开源中文分词 2012 u6.zip

    IK Analyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包。从2006年12月推出1.0版开始, IKAnalyzer已经推出了4个大版本。最初,它是以开源项目Luence为应用主体的,结合词典分词和文法分析算法的中文...

    IKExpressoin_简易表达式引擎_V2.1.0_使用说明.pdf

    IK Expression是一个开源的(OpenSource),可扩展的(Extensible),基于java语言开发的一个超轻量级(Super lightweight)的公式化语言解析执行工具包。

Global site tag (gtag.js) - Google Analytics