strings.coalesce

다음에서 지원:
strings.coalesce(a, b, c, ...)

설명

이 함수는 인수를 무제한으로 사용하고 빈 문자열로 평가되지 않는 첫 번째 표현식의 값을 반환합니다(예: '0이 아닌 값'). 모든 인수가 빈 문자열로 평가되면 함수 호출에서 빈 문자열을 반환합니다.

인수는 리터럴, 이벤트 필드 또는 함수 호출일 수 있습니다. 모든 인수는 STRING 유형이어야 합니다. 인수가 이벤트 필드인 경우 속성은 동일한 이벤트에서 생성되어야 합니다.

매개변수 데이터 유형

STRING

반환 유형

STRING

코드 샘플

예 1

다음 예시에는 문자열 변수를 인수로 포함합니다. (1) $e.network.email.fromsuspicious@gmail.com이거나 (2) $e.network.email.from이 비어 있고 $e.network.email.tosuspicious@gmail.com이면 조건이 True로 평가됩니다.

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

다음 예시에서는 인수가 3개 이상 있는 coalesce 함수를 호출합니다. 이 조건은 $e 이벤트에서 null이 아닌 첫 번째 IP 주소를 참조 목록 ip_watchlist의 값과 비교합니다. 이 호출에서 인수가 병합되는 순서는 규칙 조건에 열거되는 순서와 같습니다.

  1. $e.principal.ip가 먼저 평가됩니다.
  2. $e.src.ip가 다음에 평가됩니다.
  3. $e.target.ip가 다음에 평가됩니다.
  4. 마지막으로, 이전 ip 필드가 설정되지 않은 경우 'No IP' 문자열이 기본값으로 반환됩니다.
strings.coalesce($e.principal.ip, $e.src.ip, $e.target.ip, "No IP") in %ip_watchlist
예 3

다음 예시에서는 이벤트 $e1 및 이벤트 $e2principal.hostname을 병합하려고 시도합니다. 인수가 서로 다른 이벤트 변수이므로 컴파일러 오류가 반환됩니다.

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