regex
Utilisez la commande regex
pour filtrer les données en fonction de l'expression régulière spécifiée.
Syntaxe
Les commandes de traitement de chaînes telles que regex
consomment beaucoup de ressources. Pour cette raison, il n'est pas recommandé d'exécuter la commande regex
sur un grand nombre d'enregistrements de journal ou sur des valeurs de champ importantes. Extrayez plutôt ces valeurs à l'aide des définitions de champ étendu (EFD) ou des libellés de votre source de journal.
Pour écrire des requêtes d'expression régulière performantes, reportez-vous à la syntaxe RE2J à l'adresse Implémentation Java de RE2.
regex <field> [=|!= <regular expression>] | [IN | NOT IN (<regular expression> [(,<regular expression>)*])]
Paramètres
Le tableau suivant répertorie les paramètres utilisés dans cette commande, ainsi que leur description.
Paramètre | Description |
---|---|
|
Indiquez le champ à analyser. |
|
Indiquez l'expression régulière. |
Prenons l'ensemble d'exemples d'enregistrement suivant, qui représente les noms des entités utilisées pour exécuter quelques exemples de requête regex :
slc07cuc
slc07ptt
slc07ptt:8452
stuyb43
stuyb43:1831
Exigence de filtre | Exemple de commande regex | Résultat de recherche |
---|---|---|
Pour représenter un seul caractère à l'aide de .
|
* | regex 'entity' = 'slc07ptt:845.'|distinct entity |
slc07ptt:8452 |
Pour détecter au moins une correspondance à l'aide du caractère + |
* | regex 'entity' = 'slc07ptt.+'|distinct entity |
slc07ptt:8452 |
Pour détecter zéro, une ou plusieurs correspondances à l'aide du caractère * |
* | regex 'entity' = 'slc07ptt.*'|distinct entity |
slc07ptt
|
Pour détecter zéro ou une correspondance à l'aide du caractère générique ? |
* | regex 'entity' = 'slc07ptt?'|distinct entity |
slc07ptt |
Pour spécifier les résultats minimal et maximal de la requête | * | regex 'entity' = 'slc07p{1,2}'|distinct entity |
slc07ptt
|
Pour fournir d'autres options sur un caractère spécifique | * | regex 'entity' = 'slc07pt(T|t)'|distinct entity |
slc07ptt |
Pour spécifier un complément à l'aide du caractère ~
|
* | regex 'entity' = 'slc~c'|distinct entity |
slc07cuc |
Pour spécifier une plage numérique à l'aide de l'option d'intervalle <> |
* | regex 'entity' = 's.*<1-43>.*'|distinct entity |
stuyb43
|
Pour joindre deux modèles de sorte que les deux correspondent à l'aide de l'option d'intersection & |
* | regex 'entity' = '.*43&.*tu.'|distinct entity |
stuyb43
|
Pour mettre en correspondance n'importe quelle chaîne dans son intégralité à l'aide de l'option @
|
* | regex 'entity' = '@'|distinct entity |
slc07cuc
|
Pour rechercher les enregistrements en retirant des options spécifiques à l'aide du caractère "différent de" != |
* | regex 'entity' = 'slc07.+'|distinct entity |
stuyb43
|
Pour rechercher les enregistrements contenant les caractères 2 et 5 à l'aide de l'expression booléenne IN |
* | regex 'entity' in ('.*2.*', '.*5.*')|distinct entity |
slc07ptt:8452 |
Pour rechercher les enregistrements qui ne contiennent pas les caractères 1 et 2 à l'aide de l'expression booléenne NOT IN |
* | regex 'entity' not in ('.*1.*', '.*2.*')|distinct entity |
slc07cuc
|
Pour spécifier plusieurs requêtes regex | * | regex 'entity' = '[^1]+' | regex 'entity' = '[^5]+' |distinct entity |
slc07cuc
|
Pour rechercher les enregistrements en spécifiant la classe de caractères qui annule la présence des caractères compris entre 1 et 6 à l'aide de l'option ^ |
* | regex 'entity' = 'slc0[^1-6].*' |distinct entity |
slc07cuc
|
Pour rechercher les enregistrements en indiquant la classe de caractères qui tient compte de la présence des caractères compris entre 3 et 8 |
* | regex 'entity' = 'slc0[3-8].*' |distinct entity |
slc07cuc
|
Pour rechercher les enregistrements en indiquant la classe de caractères qui tient compte de la présence du caractère 1 ou 2 |
* | regex 'entity' = 's.*[12].*'|distinct entity |
slc07ptt:8452
|