Syntaxe des expressions régulières (regex) prise en charge - Amazon CloudWatch Logs

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Syntaxe des expressions régulières (regex) prise en charge

Utilisez des expressions régulières lorsque vous avez besoin d'une correspondance de modèles flexible allant au-delà des correspondances de texte exactes. Regex est particulièrement utile pour :

  • Formats variables : associez les adresses IP, les horodatages ou utilisez IDs différents formats

  • Correspondances partielles : recherchez les entrées du journal contenant des modèles spécifiques n'importe où dans le texte

  • Conditions complexes : associez des plages de valeurs, des caractères facultatifs ou des orthographes alternatives

Par exemple, utilisez-le pour correspondre %\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}% à n'importe quel format d'adresse IP ou %[Ee]rror|[Ff]ail% pour détecter à la fois « Error » /"error » et « Fail » /"fail » dans les journaux.

Vous pouvez faire correspondre les termes des événements de votre journal à l'aide d'un modèle regex entouré de % (signes de pourcentage avant et après le modèle regex). L'exemple suivant montre un modèle de filtre qui renvoie tous les événements du journal contenant le mot clé AUTHORISED :

%AUTHORIZED%

Ce modèle de filtre renvoie des messages relatifs aux événements du journal, tels que :

  • [ERROR 401] UNAUTHORIZED REQUEST

  • [SUCCESS 200] AUTHORIZED REQUEST

Développez la section suivante pour afficher des détails sur les opérateurs regex spécifiques et les règles de syntaxe pris en charge dans les modèles de filtre CloudWatch Logs.

Lorsque vous utilisez des expressions régulières pour rechercher et filtrer les données de journaux, vous devez entourer vos expressions de %.

Les modèles de filtres contenant des expressions régulières ne peuvent inclure que les éléments suivants :

  • Des caractères alphanumériques : un caractère alphanumérique est un caractère qui est soit une lettre (de A à Z ou de a à z) soit un chiffre (de 0 à 9).

  • Caractères symboliques pris en charge : « : », « _ », « », # « », = « », « @ », « / », « ; », « , », « » et « - ». Par exemple, %something!% serait rejeté, car « ! » n'est pas pris en charge.

  • Des opérateurs pris en charge : « ^ », « $ », « ? », « [ », « ] », « { », « } », « | », « \ », « * », « + » et « . ».

Les opérateurs ( et ) ne sont pas pris en charge. Vous ne pouvez pas utiliser de parenthèses pour définir un sous-modèle.

Les caractères multi-octets ne sont pas pris en charge.

Note

Quotas

Il existe un maximum de 5 modèles de filtres contenant des expressions régulières pour chaque groupe de journaux lors de la création de filtres de métriques ou de filtres d'abonnements.

Il existe une limite de 2 expressions régulières pour chaque modèle de filtres lors de la création d'un modèle de filtres délimités ou JSON pour les filtres de métriques et les filtres d'abonnements ou lors du filtrage des événements des journaux ou Live Tail.

Utilisation des opérateurs pris en charge

  • ^ : ancre la correspondance au début d'une chaîne. Par exemple, %^[hc]at% correspond à « hat » et « cat », mais uniquement au début d'une chaîne.

  • $ : ancre la correspondance à la fin d'une chaîne. Par exemple, %[hc]at$% correspond à « hat » et « cat », mais uniquement à la fin d'une chaîne.

  • ?: Correspond à zéro ou à une occurrence du terme précédent. Par exemple, %colou?r% peut correspondre à la fois « color » et « colour ».

  • [] : définit une classe de caractères. Correspond à la liste de caractères ou à la plage de caractères figurant entre crochets. Par exemple, %[abc]% correspond à « a », « b » ou « c » ; %[a-z]% correspond à n'importe quelle lettre minuscule comprise entre « a » et « z » ; et %[abcx-z]% correspond à « a », « b », « c », « x », « y » ou « z ».

  • {m, n} : correspond au terme précédent au moins m fois et pas plus de n fois. Par exemple, %a{3,5}% correspond uniquement à « aaa », « aaaa » et « aaaaa ».

    Note

    m ou n peuvent être omis si vous choisissez de ne pas définir de minimum ou de maximum.

  • | : valeur booléenne « Or », qui correspond au terme situé de part et d'autre de la barre verticale. Exemples :

    • %gra|ey%peut correspondre à « gris » ou « gris »

    • %^starting|^initializing|^shutting down%peut correspondre à « starting... «, ou « initialisation... «, ou « arrêt », mais ne correspondra pas à « sauter l'initialisation... »

    • %abcc|ab[^c]$peut correspondre à « abcc... » et « aba... » mais ne correspond pas à « aac... »

  • \ : caractère d'échappement, qui vous permet d'utiliser la signification littérale d'un opérateur au lieu de sa signification particulière. Par exemple, %\[.\]% correspond à n'importe quel caractère entouré de « [ » et « ] » puisque les crochets ne sont pas inclus, tels que « [a] », « [b] », « [7] », « [@] », « []] » et « [ ] ».

    Note

    %10\.10\.0\.1% est la bonne façon de créer une expression régulière correspondant à l'adresse IP 10.10.0.1.

  • *: Correspond à zéro ou plusieurs instances du terme précédent. Par exemple, %ab*c% peut correspondre à « ac », « abc » et « abbbc » ; %ab[0-9]*% peut correspondre à « ab », « ab0 » et « ab129 ».

  • +: correspond à une ou plusieurs instances du terme précédent. Par exemple, %ab+c% peut correspondre à « abc », « abbc » et « abbbc », mais pas à « ac ».

  • . : correspond à un seul caractère. Par exemple, %.at% correspond à une chaîne de trois caractères se terminant par « at », y compris « hat », « cat », « bat », « 4at », « #at » et «  at » (en commençant par un espace).

    Note

    Lorsque vous créez une expression régulière pour faire correspondre les adresses IP, il est important d'échapper à l'opérateur .. Par exemple, %10.10.0.1% peut correspondre à « 10010,051 », ce qui n'est peut-être pas l'objectif réel de l'expression.

  • \d, \D : correspond à un caractère numérique ou non numérique. Par exemple, %\d% est équivalent à %[0-9]% et %\D% est équivalent à %[^0-9]%.

    Note

    L'opérateur majuscule indique l'inverse de son équivalent en minuscules.

  • \s, \S : correspond à un caractère d'espace ou à un caractère autre qu'un espace.

    Note

    L'opérateur majuscule indique l'inverse de son équivalent en minuscules. Les espaces incluent les caractères de tabulation (\t), d'espace ( ) et de nouvelle ligne (\n).

  • \w, \W : correspond à un caractère alphanumérique ou non alphanumérique. Par exemple, %\w% est équivalent à %[a-zA-Z_0-9]% et %\W% est équivalent à %[^a-zA-Z_0-9]%.

    Note

    L'opérateur majuscule indique l'inverse de son équivalent en minuscules.

  • \xhh : correspond à la mise en correspondance ASCII d'un caractère hexadécimal à deux chiffres. \x est la séquence d'échappement qui indique que les caractères suivants représentent la valeur hexadécimale ASCII. hh spécifie les deux chiffres hexadécimaux (0-9 et A-F) qui pointent vers un caractère de la table ASCII.

    Note

    Vous pouvez utiliser \xhh pour faire correspondre les caractères de symbole qui ne sont pas pris en charge par le modèle de filtres. Par exemple, %\x3A% correspond à : ; %\x28% correspond à (.