regex
Use o comando regex
para filtrar dados de acordo com uma expressão regular especificada.
Sintaxe
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 |
---|---|
|
Especifique o campo a ser analisado. |
|
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
|
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
|
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
|
Para unir dois padrões de forma que ambos correspondam, use a opção de interseção & |
* | regex 'entity' = '.*43&.*tu.'|distinct entity |
stuyb43
|
Para corresponder qualquer string na sua totalidade usando a opção @
|
* | regex 'entity' = '@'|distinct entity |
slc07cuc
|
Para localizar os registros filtrando as opções específicas usando o caractere diferente de != |
* | regex 'entity' = 'slc07.+'|distinct entity |
stuyb43
|
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
|
Para especificar várias consultas regex | * | regex 'entity' = '[^1]+' | regex 'entity' = '[^5]+' |distinct entity |
slc07cuc
|
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
|
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
|
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
|