regex
Utilizzare il comando regex
per filtrare i dati in base a un'espressione regolare specificata.
Sintassi
I comandi di elaborazione delle stringhe, ad esempio regex
, richiedono più risorse. A causa di ciò, l'esecuzione del comando regex
su un numero elevato di record di log o su valori di campo di grandi dimensioni non è consigliata. Estrarre invece questi valori utilizzando le definizioni campi estesi (EFD) o le etichette nell'origine log.
Per scrivere query regex performant, fare riferimento alla sintassi RE2J in Implementazione Java di RE2.
regex <field> [=|!= <regular expression>] | [IN | NOT IN (<regular expression> [(,<regular expression>)*])]
Parametri
La tabella seguente elenca i parametri utilizzati in questo comando e le relative descrizioni.
Parametro | descrizione; |
---|---|
|
Specificare il campo da analizzare. |
|
Specificare l'espressione regolare. |
Considerare il seguente set di record di esempio che rappresentano i nomi delle entità per eseguire alcune query regex di esempio:
slc07cuc
slc07ptt
slc07ptt:8452
stuyb43
stuyb43:1831
Filtra requisito | Esempio di comando Regex | Risultati della ricerca |
---|---|---|
Per rappresentare un singolo carattere utilizzando .
|
* | regex 'entity' = 'slc07ptt:845.'|distinct entity |
slc07ptt:8452 |
Per rilevare una o più corrispondenze utilizzando il carattere + |
* | regex 'entity' = 'slc07ptt.+'|distinct entity |
slc07ptt:8452 |
Per rilevare zero o più corrispondenze utilizzando il carattere * |
* | regex 'entity' = 'slc07ptt.*'|distinct entity |
slc07ptt
|
Per rilevare zero o una corrispondenza utilizzando il carattere jolly ? |
* | regex 'entity' = 'slc07ptt?'|distinct entity |
slc07ptt |
Per specificare i risultati minimo e massimo della query | * | regex 'entity' = 'slc07p{1,2}'|distinct entity |
slc07ptt
|
Per fornire opzioni alternative per un carattere specifico | * | regex 'entity' = 'slc07pt(T|t)'|distinct entity |
slc07ptt |
Per specificare un complemento utilizzando il carattere ~
|
* | regex 'entity' = 'slc~c'|distinct entity |
slc07cuc |
Per specificare un intervallo numerico utilizzando l'opzione intervallo <> |
* | regex 'entity' = 's.*<1-43>.*'|distinct entity |
stuyb43
|
Per unire due modelli in modo che corrispondano a entrambi, utilizzare l'opzione di intersezione & |
* | regex 'entity' = '.*43&.*tu.'|distinct entity |
stuyb43
|
Per trovare una corrispondenza con qualsiasi stringa nella sua interezza utilizzando l'opzione @
|
* | regex 'entity' = '@'|distinct entity |
slc07cuc
|
Per trovare i record filtrando le opzioni specifiche utilizzando il carattere diverso != |
* | regex 'entity' = 'slc07.+'|distinct entity |
stuyb43
|
Per trovare i record che contengono i caratteri 2 e 5 , specificare l'espressione booleana IN |
* | regex 'entity' in ('.*2.*', '.*5.*')|distinct entity |
slc07ptt:8452 |
Per trovare i record che non contengono i caratteri 1 e 2 , specificare l'espressione booleana NOT IN |
* | regex 'entity' not in ('.*1.*', '.*2.*')|distinct entity |
slc07cuc
|
Per specificare più query regex | * | regex 'entity' = '[^1]+' | regex 'entity' = '[^5]+' |distinct entity |
slc07cuc
|
Per trovare i record specificando la classe di caratteri che nega la presenza dei caratteri da 1 a 6 , utilizzare l'opzione ^ |
* | regex 'entity' = 'slc0[^1-6].*' |distinct entity |
slc07cuc
|
Per trovare i record specificando la classe di caratteri per la presenza dei caratteri da 3 a 8 |
* | regex 'entity' = 'slc0[3-8].*' |distinct entity |
slc07cuc
|
Per trovare i record specificando la classe di caratteri per la presenza dei caratteri 1 o 2 |
* | regex 'entity' = 's.*[12].*'|distinct entity |
slc07ptt:8452
|