Drools中的正则表达式

时间:2016-02-05 19:38:20

标签: java regex drools

当我尝试编写规则时,我不断收到编译错误。

我正在尝试将此条件转换为drools

if(model.type.series != null && model.type.series.name.mathes(".*FANR.*") || 
                      model.type.series.name.matches(".*SANA.*"))
    //do something....

这就是我的......

rule "Rule 01" salience 0    
    when
            m : model(type.series != null, 
                      type.series.name.matches(".*FANR.*") || 
                      type.series.name.matches(".*SANA.*") 
            a : Result(state == Result.GOOD )   
    then
        a.setState(RESULT.BAD);
          ....
end

我试图做的是使用正则表达式来匹配字符串中'name'是String类型的部分。由于我对流口水不熟悉,我不知道它会在哪里引起问题,任何帮助都会受到赞赏

1 个答案:

答案 0 :(得分:2)

使用正确的Drools语法,根据matches运算符,如Drools手册中所述。

rule FANRorSANA
when
    $n: model($v: type.series.name matches ".*(FANR|SANA).*")
then

您可以使用正则表达式的强大功能来测试替代方案。