我想在drool的when部分使用in build关键字匹配来匹配字符串。
例如
rule "test"
when Foo( fooid : id )
Bar( barid : id, barid not matches "ID=" + fooid + ", " + name )
then ...
它似乎不起作用,因为它在抱怨“ID =” + fooid +“,” +名称。
但是,如果我删除所有参数,它将运行,即仅保留“ID =“
因此,问题似乎出在如何在匹配模式中包含更多参数,您将如何解决呢?
谢谢
最佳答案
在检查规则之前,您可以同时保存fooid和barid吗?不知道是否可能,您可以尝试一下。
string fooid = Food id // use correct syntax
string barid = Bar id // use correct syntax
string checkstring = "ID=" + fooid + "," + name
rule "test"
when
barid: String(this not matches "(?i)." + checkstring)
then
System.out.println(checkstring);
end
注释:
(?i)-忽略大小写