如果Regex不匹配,则抛出drools验证

时间:2015-10-12 11:09:05

标签: regex drools

        rule "doesnot match REGEX"
      when
           RuleActivator( targetMessage == "message" )
           $g: Parent(name matches "^[0-9]{4}[" "][A-Z]{2}[" "][0-9]{5}[" "]")
      then
           insert(new ValidationError(Validation($ROOT, $g, "name"), "SSDN"));
     end

当匹配正则表达式时,此规则将抛出错误。当这个正则表达式不匹配时,我想抛出错误。 那么,是否有任何drools方法。或者还有其他方式吗?

1 个答案:

答案 0 :(得分:1)

使用not matches

  

运营商 items: { "item": {name: function(){ return (x > 10) ? 'name1' : 'name2'; }, disabled: false}, "sep1": "----------------", .... }

     

如果String与正则表达式不匹配,则运算符返回true。适用与not matches运算符相同的规则。

根据要求判断:

  

位置1-4:邮政编码的数字部分 - 位置5:空白 - 位置6-7:两个大写字母(A2) - 位置8:空白 - 位置9-13:地址(数字,对齐左侧,到充满空间) - 位置14:blanc

你的正则表达式应如下所示:

matches