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_match | max_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