Перейти к основному содержимому
Версия: 3.2

rex

Описание

Позволяет получить значения из строки с помощью регулярного выражения.

Синтаксис

... | rex field = <field> "(?<new_field><reg-expression>*)" [max_match=<int>]

Обязательные аргументы

ПараметрСинтаксисОписание
<field><field>Поле, по которому происходит поиск по регулярному выражению.
<reg-expression><string>Регулярное выражение, по которому происходит поиск значения.
<new_field><string>Новое поле события, принимающее значение, найденного по регулярному выражению.
Теги для new_field

Параметр <new_field> поддерживает теги:

ПараметрСинтаксисОписание
_KEY__KEY_<string>Тег указывает на создание нового поля с названием из найденного значения по регулярному выражению.
_VAL__VAL_<string>Тег указывает на сопоставление найденного значения по регулярному выражению и присваивание к полю, созданного с помощью тега_KEY_.

Опциональные аргументы

ПараметрСинтаксисПо умолчаниюОписание
max_matchmax_match=<int>1Максимальное количество возвращаемых значений.

Примеры запросов

Пример 1

В примере user имеет значение "127.0.0.1:5555, 192.168.0.1:2802", поле ip примет значение "127.0.0.1", поле port примет значение "5555".

... 
| rex field = user "(?<ip>[0-9.]+):(?<port>[0-9]*)"

Пример 2

В примере memberOf имеет значение "CN=Иванов Иван, OU=Сотрудники, DC=dc", поле keysField примет значение [“CN”, “OU”, “DC”], поле valuesField примет значение [“Иванов Иван”, “Сотрудники”, “dc”].

... 
| rex field = memberOf "(?<keysField>[a-zA-Z0-9_ ]*)=(?<valuesField>[а-яА-Яa-zA-Z_ ]*)" max_match=0

Пример 3

В примере memberOf имеет значение "CN=Иванов Иван, OU=Сотрудники, DC=dc", поле CN примет значение "Иванов Иван".

... 
| rex field = memberOf "(?<_KEY_keyField>[a-zA-Z0-9_ ]*)=(?<_VAL_valueField>([а-яА-Яa-zA-Z_ ])*)" max_match=1