strings.coalesce

Disponible en:
strings.coalesce(a, b, c, ...)

Descripción

Esta función toma un número ilimitado de argumentos y devuelve el valor de la primera expresión que no se evalúa como una cadena vacía (por ejemplo, "valor distinto de cero"). Si todos los argumentos dan como resultado una cadena vacía, la llamada a la función devuelve una cadena vacía.

Los argumentos pueden ser literales, campos de evento o llamadas a funciones. Todos los argumentos deben ser del tipo STRING. Si algún argumento es un campo de evento, los atributos deben ser del mismo evento.

Tipos de datos de parámetros

STRING

Tipo de devolución

STRING

Códigos de ejemplo

Ejemplo 1

En el siguiente ejemplo se incluyen variables de cadena como argumentos. La condición se evalúa como verdadera cuando (1) $e.network.email.from es suspicious@gmail.com o (2) $e.network.email.from está vacío y $e.network.email.to es suspicious@gmail.com.

"suspicious@gmail.com" = strings.coalesce($e.network.email.from, $e.network.email.to)
Ejemplo 2

En el siguiente ejemplo se llama a la función coalesce con más de dos argumentos. Esta condición compara la primera dirección IP no nula del evento $e con los valores de la lista de referencia ip_watchlist. El orden en el que se combinan los argumentos en esta llamada es el mismo que el orden en el que se enumeran en la condición de la regla:

  1. $e.principal.ip se evalúa primero.
  2. $e.src.ip se evalúa a continuación.
  3. $e.target.ip se evalúa a continuación.
  4. Por último, la cadena "No IP" se devuelve como valor predeterminado si los campos ip anteriores no se han definido.
strings.coalesce($e.principal.ip, $e.src.ip, $e.target.ip, "No IP") in %ip_watchlist
Ejemplo 3

En el siguiente ejemplo se intenta combinar principal.hostname de los eventos $e1 y $e2. Devolverá un error del compilador porque los argumentos son variables de evento diferentes.

// returns a compiler error
"test" = strings.coalesce($e1.principal.hostname, $e2.principal.hostname)