regex

Utilisez la commande regex pour filtrer les données en fonction d'une expression rationnelle spécifiée.

Syntaxe

Note

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

field

Indiquez le champ à analyser.

regular expression

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

slc07ptt:8452

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

slc07ptt:8452

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

stuyb43:1831

Pour associer deux modèles de sorte que les deux correspondent, utilisez l'option d'intersection & * | regex 'entity' = '.*43&.*tu.'|distinct entity stuyb43

stuyb43:1831

Pour mettre en correspondance l'intégralité d'une chaîne à l'aide de l'option @ * | regex 'entity' = '@'|distinct entity slc07cuc

slc07ptt

slc07ptt:8452

stuyb43

stuyb43:1831

Pour rechercher les enregistrements en filtrant les options spécifiques à l'aide du caractère "différent de" != * | regex 'entity' = 'slc07.+'|distinct entity stuyb43

stuyb43:1831

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

slc07ptt

stuyb43

Pour spécifier plusieurs interrogations regex * | regex 'entity' = '[^1]+' | regex 'entity' = '[^5]+' |distinct entity slc07cuc

slc07ptt

stuyb43

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

slc07ptt

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

slc07ptt

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

stuyb43:1831