有没有人知道在drools中是否有办法做循环?是为了循环可能在流口水?
我想通过一个字符串列表来查看是否有一个字符串匹配一个模式,例如
def listOfStrings = ['a','a.b','a.b.c']
for(String s:listOfStrings){
if(s matches "^a.b.*$"){
return true
}
}
我写了下面的规则基础上我能找到的文档,但我不认为语法是正确的
rule "Matcher"
when
TestClass : TestClass(($s matches "^a.b.*$") from listOfStrings, count($s))
then
TestClass.setResponse("Condition is True !!");
end
我发现很难找到对DRL语言
良好的文档我希望得到任何帮助,任何人都可以给我
基于以前的答案,我曾尝试以下
rule "Matcher"
when
TestClass:TestClass(String(this matches "^a.b.*$") from listOfStrings)
then
TestClass.setResponse("Condition is True !!");
end
不过,我现在得到了以下错误消息:
[43,197]: unknown:43:197 Unexpected token 'this'
感谢您的链接,但在那里的例子只搜索一个字符串,看看它是否匹配正则表达式。 在我的例子我可以使用 “ABC”匹配“^ AB * $” 但是,这心不是我试图实现,我想寻找一个字符串列表,看看其中是否匹配正表达。 我不认为这是造成我的问题的正则表达式部分。这是事实,我不知道如何遍历drools中的字符串列表。 你知道我怎么能做到这一点? 谢谢 – MTH 2010-07-31 14:53:25
我不确定,但我猜你想看看应用正则表达式到列表中。 “至少匹配一个”,“匹配一个或多个”是我会寻找的东西。如果你没有在Drools中找到循环,那是因为它不应该以这种方式工作。 – duffymo 2010-07-31 15:02:27
你知道吗有没有办法将java代码嵌入到规则中? – MTH 2010-07-31 16:01:33