首页 > 解决方案 > 模式匹配不适用于 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)

有人可以帮我解决这个问题吗?

标签: javaregexmatchingmvel

解决方案


推荐阅读