Кто-нибудь знает, есть ли способ сделать для петель в 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» матчи «^ аб * $» Но разве то, что я пытаюсь достичь, я пытаюсь найти список строк, чтобы увидеть, если любой из них соответствует регулярным выражение. Я не думаю, что это часть регулярного выражения, которая вызывает у меня проблемы. Это факт, что я не знаю, как перебирать список строк в drools. Вы знаете, как я могу это сделать? спасибо – MTH
Я не уверен, но я предполагаю, что вы хотите увидеть, как применить регулярное выражение к списку. «соответствует хотя бы одному», «соответствует одному или нескольким» - это те вещи, которые я бы искал. Если вы не находите петли в Drools, это потому, что это не должно работать так. – duffymo
Знаете ли вы, есть ли способ вставить Java-код в правило? – MTH