regex
Utilice el comando regex
para filtrar los datos según una expresión regular especificada.
Sintaxis
Los comandos de procesamiento de cadenas como regex
hacen un uso intensivo de los recursos. Debido a esto, no se recomienda ejecutar el comando regex
en un gran número de registros de log o grandes valores de campo. En su lugar, extraiga estos valores mediante las definiciones de campos ampliados (EFD) o las etiquetas del origen de log.
Para escribir consultas regex eficaces, consulte la sintaxis de RE2J en Implantación de Java de RE2.
regex <field> [=|!= <regular expression>] | [IN | NOT IN (<regular expression> [(,<regular expression>)*])]
Parámetros
En la siguiente tabla se muestran los parámetros utilizados en este comando, junto con sus descripciones.
Parámetro | Descripción |
---|---|
|
Especifique el campo que se va a analizar. |
|
Especifique la expresión regular. |
Tenga en cuenta el siguiente juego de registros de ejemplo que representan los nombres de entidades para ejecutar algunas consultas de expresiones regulares de ejemplo:
slc07cuc
slc07ptt
slc07ptt:8452
stuyb43
stuyb43:1831
Requisito de filtro | Comando de ejemplo de expresión regular | Resultados de la búsqueda |
---|---|---|
Para representar un único carácter con .
|
* | regex 'entity' = 'slc07ptt:845.'|distinct entity |
slc07ptt:8452 |
Para detectar una o más coincidencias con el carácter + |
* | regex 'entity' = 'slc07ptt.+'|distinct entity |
slc07ptt:8452 |
Para detectar cero o más coincidencias con el carácter * |
* | regex 'entity' = 'slc07ptt.*'|distinct entity |
slc07ptt
|
Para detectar cero o una coincidencia mediante el carácter comodín ? |
* | regex 'entity' = 'slc07ptt?'|distinct entity |
slc07ptt |
Para especificar los resultados mínimo y máximo de la consulta | * | regex 'entity' = 'slc07p{1,2}'|distinct entity |
slc07ptt
|
Para proporcionar opciones alternativas para un carácter específico | * | regex 'entity' = 'slc07pt(T|t)'|distinct entity |
slc07ptt |
Para especificar un complemento con el carácter ~
|
* | regex 'entity' = 'slc~c'|distinct entity |
slc07cuc |
Para especificar un rango numérico mediante la opción de intervalo <> |
* | regex 'entity' = 's.*<1-43>.*'|distinct entity |
stuyb43
|
Para unir dos patrones de forma que ambos coincidan, utilice la opción de intersección & |
* | regex 'entity' = '.*43&.*tu.'|distinct entity |
stuyb43
|
Para hacer coincidir cualquier cadena en su totalidad mediante la opción @
|
* | regex 'entity' = '@'|distinct entity |
slc07cuc
|
Para buscar los registros filtrando las opciones específicas con el carácter distinto de != |
* | regex 'entity' = 'slc07.+'|distinct entity |
stuyb43
|
Para buscar registros que contengan los caracteres 2 y 5 , especifique la expresión booleana IN |
* | regex 'entity' in ('.*2.*', '.*5.*')|distinct entity |
slc07ptt:8452 |
Para buscar registros que no contengan los caracteres 1 y 2 , especifique la expresión booleana NOT IN |
* | regex 'entity' not in ('.*1.*', '.*2.*')|distinct entity |
slc07cuc
|
Para especificar varias consultas de expresión regular | * | regex 'entity' = '[^1]+' | regex 'entity' = '[^5]+' |distinct entity |
slc07cuc
|
Para buscar los registros especificando la clase de carácter que niega la presencia de los caracteres del 1 al 6 mediante la opción ^ |
* | regex 'entity' = 'slc0[^1-6].*' |distinct entity |
slc07cuc
|
Para buscar los registros especificando la clase de caracteres para la presencia de los caracteres del 3 al 8 . |
* | regex 'entity' = 'slc0[3-8].*' |distinct entity |
slc07cuc
|
Para buscar los registros especificando la clase de caracteres para la presencia de los caracteres 1 o 2 . |
* | regex 'entity' = 's.*[12].*'|distinct entity |
slc07ptt:8452
|