regex
Utilisez la commande regex
pour filtrer les données en fonction d'une expression rationnelle spécifiée.
Syntaxe
Les commandes de traitement de chaîne telles que regex
nécessitent 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 volumineuses. À la place, extrayez ces valeurs à l'aide des définitions de champ étendu (EFD) ou des étiquettes dans votre source de journaux.
Pour écrire des interrogations d'expression rationnelle performantes, consultez la syntaxe RE2J à l'adresse Java Implementation of 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. |
|
Spécifiez l'expression rationnelle. |
Prenons l'exemple du jeu d'enregistrements ci-dessous représentant les noms des entités à exécuter sur quelques exemples d'interrogations d'expression rationnelle :
slc07cuc
slc07ptt
slc07ptt:8452
stuyb43
stuyb43:1831
Filtre requis | 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 une ou plusieurs correspondances à l'aide du caractère + |
* | regex 'entity' = 'slc07ptt.+'|distinct entity |
slc07ptt:8452 |
Pour détecter zéro ou une correspondance à 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 minimum et maximum de l'interrogation | * | regex 'entity' = 'slc07p{1,2}'|distinct entity |
slc07ptt
|
Pour fournir d'autres options pour 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 un intervalle numérique à l'aide de l'option d'intervalle <> |
* | regex 'entity' = 's.*<1-43>.*'|distinct entity |
stuyb43
|
Pour associer deux modèles de sorte que les deux correspondent, utilisez l'option d'intersection & |
* | regex 'entity' = '.*43&.*tu.'|distinct entity |
stuyb43
|
Pour mettre en correspondance l'intégralité d'une chaîne à l'aide de l'option @
|
* | regex 'entity' = '@'|distinct entity |
slc07cuc
|
Pour rechercher les enregistrements en filtrant les 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 , spécifiez 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 , spécifiez l'expression booléenne NOT IN |
* | regex 'entity' not in ('.*1.*', '.*2.*')|distinct entity |
slc07cuc
|
Pour spécifier plusieurs interrogations regex | * | regex 'entity' = '[^1]+' | regex 'entity' = '[^5]+' |distinct entity |
slc07cuc
|
Pour trouver les enregistrements en spécifiant la classe de caractères qui nie la présence des caractères de 1 à 6 à l'aide de l'option ^ |
* | regex 'entity' = 'slc0[^1-6].*' |distinct entity |
slc07cuc
|
Pour rechercher les enregistrements en spécifiant la classe de caractères pour la présence des caractères de 3 à 8 |
* | regex 'entity' = 'slc0[3-8].*' |distinct entity |
slc07cuc
|
Pour rechercher les enregistrements en spécifiant la classe de caractères pour la présence des caractères 1 ou 2 |
* | regex 'entity' = 's.*[12].*'|distinct entity |
slc07ptt:8452
|