¿Alguien sabe si hay una manera de hacer los lazos en babas?son para bucles posibles en babas?
Estoy tratando de recorrer una lista de cadenas para ver si una de las cadenas coincide con un patrón, p.
def listOfStrings = ['a','a.b','a.b.c']
for(String s:listOfStrings){
if(s matches "^a.b.*$"){
return true
}
}
he escrito la siguiente regla basada en lo que la documentación que pude encontrar, pero no creo que la sintaxis es correcta
rule "Matcher"
when
TestClass : TestClass(($s matches "^a.b.*$") from listOfStrings, count($s))
then
TestClass.setResponse("Condition is True !!");
end
Me resulta difícil encontrar una buena documentación en el idioma del drl
Le agradecería cualquier ayuda que nadie me puede dar
Basado en la respuesta anterior, he intentado el siguiente
rule "Matcher"
when
TestClass:TestClass(String(this matches "^a.b.*$") from listOfStrings)
then
TestClass.setResponse("Condition is True !!");
end
Sin embargo, ahora me sale el siguiente mensaje de error:
[43,197]: unknown:43:197 Unexpected token 'this'
Gracias por el enlace, pero el ejemplo solo busca una cadena para ver si coincide con una expresión regular. En mi ejemplo que podría utilizar partidos "abc" "ab^* $" Pero eso isnt lo que estoy tratando de lograr, estoy tratando de buscar una lista de cadenas para ver si alguno de ellos coinciden con un habitual expresión. No creo que sea la parte de la expresión regular la que me esté causando problemas. Es el hecho de que no sé cómo iterar a través de una lista de cadenas en drools. ¿Sabes cómo podría hacer esto? gracias – MTH
No estoy seguro, pero supongo que quiere ver cómo aplicar la expresión regular a una lista. "coincide con al menos uno", "coincide con uno o más" son los tipos de cosas que estaría buscando. Si no encuentra bucles en Drools, es porque no debería funcionar de esa manera. – duffymo
¿sabes si hay una forma de insertar código Java en una regla? – MTH