regex

Use o comando regex para filtrar dados de acordo com uma expressão regular especificada.

Sintaxe

Observação

Os comandos de processamento de string como regex consomem muitos recursos. Devido a isso, não é recomendável executar o comando regex em um grande número de registros de log ou em valores de campo grandes. Em vez disso, extraia esses valores usando as Definições de Campo Estendido (EFD) ou Labels na Origem de Log.

Para escrever consultas regex de desempenho, consulte a sintaxe RE2J em Implementação Java de RE2.

regex <field> [=|!= <regular expression>] | [IN | NOT IN (<regular expression> [(,<regular expression>)*])]

Parâmetros

A tabela a seguir lista os parâmetros usados nesse comando, com suas descrições.

Parâmetro Descrição

field

Especifique o campo a ser analisado.

regular expression

Especifique a expressão regular.

Considere o seguinte conjunto de registros de amostra que representam nomes de entidades para executar algumas consultas regex de exemplo:

slc07cuc
slc07ptt
slc07ptt:8452
stuyb43
stuyb43:1831
Requisito de Filtro Comando Regex de Exemplo Resultado da Pesquisa
Para representar um único caractere usando . * | regex 'entity' = 'slc07ptt:845.'|distinct entity slc07ptt:8452
Para detectar uma ou mais correspondências usando o caractere + * | regex 'entity' = 'slc07ptt.+'|distinct entity slc07ptt:8452
Para detectar zero ou mais correspondências usando o caractere * * | regex 'entity' = 'slc07ptt.*'|distinct entity slc07ptt

slc07ptt:8452

Para detectar zero ou uma correspondência usando o caractere curinga ? * | regex 'entity' = 'slc07ptt?'|distinct entity slc07ptt
Para especificar os resultados mínimo e máximo da consulta * | regex 'entity' = 'slc07p{1,2}'|distinct entity slc07ptt

slc07ptt:8452

Para fornecer opções alternativas para um caractere específico * | regex 'entity' = 'slc07pt(T|t)'|distinct entity slc07ptt
Para especificar um complemento usando o caractere ~ * | regex 'entity' = 'slc~c'|distinct entity slc07cuc
Para especificar uma faixa numérica usando a opção de intervalo <> * | regex 'entity' = 's.*<1-43>.*'|distinct entity stuyb43

stuyb43:1831

Para unir dois padrões de forma que ambos correspondam, use a opção de interseção & * | regex 'entity' = '.*43&.*tu.'|distinct entity stuyb43

stuyb43:1831

Para corresponder qualquer string na sua totalidade usando a opção @ * | regex 'entity' = '@'|distinct entity slc07cuc

slc07ptt

slc07ptt:8452

stuyb43

stuyb43:1831

Para localizar os registros filtrando as opções específicas usando o caractere diferente de != * | regex 'entity' = 'slc07.+'|distinct entity stuyb43

stuyb43:1831

Para localizar registros que contêm os caracteres 2 e 5, especifique a expressão booliana IN * | regex 'entity' in ('.*2.*', '.*5.*')|distinct entity slc07ptt:8452
Para localizar registros que não contêm os caracteres 1 e 2, especifique a expressão booliana NOT IN * | regex 'entity' not in ('.*1.*', '.*2.*')|distinct entity slc07cuc

slc07ptt

stuyb43

Para especificar várias consultas regex * | regex 'entity' = '[^1]+' | regex 'entity' = '[^5]+' |distinct entity slc07cuc

slc07ptt

stuyb43

Para localizar os registros especificando a classe de caractere que nega a presença dos caracteres de1 a 6 usando a opção ^ * | regex 'entity' = 'slc0[^1-6].*' |distinct entity slc07cuc

slc07ptt

Para localizar os registros especificando a classe de caractere para a presença dos caracteres de 3 a 8 * | regex 'entity' = 'slc0[3-8].*' |distinct entity slc07cuc

slc07ptt

Para localizar os registros especificando a classe de caractere para a presença dos caracteres 1 ou 2 * | regex 'entity' = 's.*[12].*'|distinct entity slc07ptt:8452

stuyb43:1831