qualcuno sa se c'è un modo per fare i loop in drools?sono possibili per loop in drools?
Sto provando a scorrere un elenco di stringhe per vedere se una delle stringhe corrisponde a un modello, ad es.
def listOfStrings = ['a','a.b','a.b.c']
for(String s:listOfStrings){
if(s matches "^a.b.*$"){
return true
}
}
ho scritto la seguente regola in base a quale documentazione che ho trovato, ma io non credo che la sintassi è corretta
rule "Matcher"
when
TestClass : TestClass(($s matches "^a.b.*$") from listOfStrings, count($s))
then
TestClass.setResponse("Condition is True !!");
end
mi sto trovando difficile trovare una buona documentazione sul linguaggio DRL
Gradirei qualsiasi aiuto che chiunque può darmi
Sulla base della risposta precedente, ho provato quanto segue
rule "Matcher"
when
TestClass:TestClass(String(this matches "^a.b.*$") from listOfStrings)
then
TestClass.setResponse("Condition is True !!");
end
Tuttavia, ora ottengo il seguente messaggio di errore:
[43,197]: unknown:43:197 Unexpected token 'this'
Grazie per il collegamento, ma nell'esempio si cerca solo una stringa per vedere se corrisponde a un'espressione regolare. Nel mio esempio ho potuto utilizzare "ABC" partite "^ ab * $" Ma quello non è quello che sto cercando di realizzare, sto cercando di cercare una lista di stringhe per vedere se qualcuno di loro corrispondono un regolare espressione. Non penso che sia la parte regex che mi sta causando problemi. È il fatto che non so come eseguire iterazioni attraverso una lista di stringhe in drools. Sai come potrei essere in grado di fare questo? grazie – MTH
Non sono sicuro, ma suppongo che vogliate vedere l'applicazione della regex in una lista. "corrisponde almeno a uno", "corrisponde a uno o più" sono il tipo di cose che cerco. Se non trovi loop in Drools, è perché non dovrebbe funzionare in questo modo. – duffymo
sai se esiste un modo per incorporare un codice java in una regola? – MTH