java - 模式匹配不适用于 MVEL.eval
问题描述
我正在尝试使用 MVEL 库评估 Java 中的模式或基于正则的表达式。但是,“匹配”功能无法正常工作并且会出现编译错误。
我试图在 MVEL 中创建一个如下所示的表达式,但正则表达式无法正常工作。
工作正常 -
System.out.println(MVEL.eval("'5.00' == '5.00'"));
Answer : true
不能正常工作 -
System.out.println(MVEL.eval("'5.00' matches '^-?\\d+(\\.\\d{2})?$'"));
Error Message :
Exception in thread "main" [Error: unexpected token or unknown identifier:matches]
[Near : {... '5.00' matches '^-?\d+(\.\d{2})?$' ....}]
^
[Line: 1, Column: 8]
at org.mvel2.MVELInterpretedRuntime.parseAndExecuteInterpreted(MVELInterpretedRuntime.java:138)
at org.mvel2.MVELInterpretedRuntime.parse(MVELInterpretedRuntime.java:47)
at org.mvel2.MVEL.eval(MVEL.java:92)
at com.oracle.oci.ops.integrate.config.parser.MVELParser.main(MVELParser.java:24)
有人可以帮我解决这个问题吗?
解决方案
推荐阅读
- php - php min max 函数无法正常工作
- css - bootstrap 3 CSS 背景图像未显示在打印预览中
- python - AttributeError:“unicode”对象没有属性“image_id”
- angular - Angular 路由与某些功能模块的通用布局
- security - 在网站搜索表单上运行安全扫描
- c# - 自签名证书适用于 CurrentUser 上的 IdentityServer,但不适用于 LocalMachine
- amazon-web-services - 如何在 Cloudwatch 中为 RDS 内存利用率创建自定义指标?
- arduino - 'const' 之前的预期主表达式
- three.js - 如何在 ThreeJS 控件中偏移目标位置
- c - 没有重载函数的实例与参数列表匹配