Unterstützte Syntax für reguläre Ausdrücke (Regex) - CloudWatch Amazon-Protokolle

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Unterstützte Syntax für reguläre Ausdrücke (Regex)

Verwenden Sie reguläre Ausdrücke, wenn Sie einen flexiblen Musterabgleich benötigen, der über exakte Textübereinstimmungen hinausgeht. Regex ist besonders nützlich für:

  • Variable Formate: Ordnen Sie IP-Adressen, Zeitstempel oder IDs unterschiedliche Formate zu

  • Teilweise Übereinstimmungen: Suchen Sie an einer beliebigen Stelle im Text nach Protokolleinträgen, die bestimmte Muster enthalten

  • Komplexe Bedingungen: Entspricht Wertebereichen, optionalen Zeichen oder alternativen Schreibweisen

Verwenden Sie es beispielsweise, %\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}% um ein beliebiges IP-Adressformat abzugleichen oder %[Ee]rror|[Ff]ail% um sowohl „Error“ /"error“ als auch „Fail“ /"fail“ in Protokollen abzufangen.

Sie können Begriffe in Ihren Protokollereignissen mit einem Regex-Muster abgleichen, das von % (Prozentzeichen vor und nach dem Regex-Muster) umgeben ist. Das folgende Beispiel zeigt ein Filtermuster, das alle Protokollereignisse zurückgibt, die das AUTHORIZED-Schlüsselwort enthalten:

%AUTHORIZED%

Dieses Filtermuster gibt Protokollereignismeldungen zurück, z. B.:

  • [ERROR 401] UNAUTHORIZED REQUEST

  • [SUCCESS 200] AUTHORIZED REQUEST

Erweitern Sie den folgenden Abschnitt, um Details zu den spezifischen Regex-Operatoren und Syntaxregeln anzuzeigen, die in CloudWatch Logs-Filtermustern unterstützt werden.

Wenn Sie Regex zum Suchen und Filtern von Protokolldaten verwenden, müssen Sie Ihre Ausdrücke mit % umgeben.

Filtermuster mit Regex können nur Folgendes enthalten:

  • Alphanumerische Zeichen – Ein alphanumerisches Zeichen ist ein Zeichen, das entweder ein Buchstabe (von A bis Z oder A bis Z) oder eine Ziffer (von 0 bis 9) ist.

  • Unterstützte Symbolzeichen — Dazu gehören: ':', '_', '#', '=', '@', '/', ';', ',' und ''-. %something!% würde beispielsweise abgelehnt werden, da '!' nicht unterstützt wird.

  • Unterstützte Operatoren – Dazu gehören: '^', '$', '?', '[', ']', '{', '}', '|', '\', '*', '+' und '.'.

Die Operatoren ( und ) werden nicht unterstützt. Sie dürfen keine Klammern verwenden, um ein Untermuster zu definieren.

Multi-Byte-Zeichen werden nicht unterstützt.

Anmerkung

Kontingente

Bei der Erstellung von metrischen Filtern oder Abonnementfiltern können Sie für jede Protokollgruppe maximal 5 Filtermuster mit Regex verwenden.

Es gibt ein Limit von 2 Regex für jedes Filtermuster, wenn Sie ein abgegrenztes oder JSON-Filtermuster für metrische Filter und Abonnementfilter erstellen oder wenn Sie Protokollereignisse oder Live Tail filtern.

Verwendung unterstützter Operatoren

  • ^: Verankert die Übereinstimmung am Anfang einer Zeichenfolge. Beispielsweise stimmt %^[hc]at% mit „hat“ und „cat“ überein, aber nur am Anfang einer Zeichenfolge.

  • $: Verankert die Übereinstimmung am Ende einer Zeichenfolge. Beispielsweise stimmt %[hc]at$% mit „hat“ und „cat“ überein, aber nur am Ende einer Zeichenfolge.

  • ?: Entspricht null oder einem Vorkommen des vorhergehenden Begriffs. So kann %colou?r% sowohl mit „color“ als auch „colour“ übereinstimmen.

  • []: Definiert eine Zeichenklasse. Gleicht die Zeichenliste oder den Zeichenbereich innerhalb der Klammern ab. Zum Beispiel stimmt %[abc]% mit „a“, „b“ oder „c“ überein; %[a-z]% stimmt mit jedem Kleinbuchstaben von „a“ bis „z“ überein; und %[abcx-z]% stimmt mit „a“, „b“, „c“, „x“, „y“ oder „z“ überein.

  • {m, n}: Gleicht den vorhergehenden Begriff mindestens mit m-mal ab, aber nicht öfter als n-mal. %a{3,5}% stimmt beispielsweise nur mit „aaa“, „aaaa“ und „aaaaa“ überein.

    Anmerkung

    Entweder m oder n können weggelassen werden, wenn Sie kein Minimum oder Maximum definieren möchten.

  • |: Boolesches „Oder“, das den Begriff auf beiden Seiten des senkrechten Balkens abgleicht. Beispiel:

    • %gra|ey%kann „grau“ oder „grau“ entsprechen

    • %^starting|^initializing|^shutting down%kann mit „Start...“ übereinstimmen „oder „initialisieren... „oder „Herunterfahren“, passt aber nicht zu „Initialisierung überspringen...“

    • %abcc|ab[^c]$kann mit „abcc...“ und „aba...“ übereinstimmen, aber nicht mit „aac...“

  • \: Escape-Zeichen, mit dem Sie die wörtliche Bedeutung eines Operators anstelle seiner speziellen Bedeutung verwenden können. Zum Beispiel stimmt %\[.\]% mit jedem einzelnen Zeichen überein, das von [ und ] umgeben ist, da die Klammern ausgestellt sind, wie [a], [b], [7], [@], []] und [ ].

    Anmerkung

    %10\.10\.0\.1% ist die richtige Methode, um eine Regex zu erstellen, die der IP-Adresse 10.10.0.1 entspricht.

  • *: Entspricht null oder mehr Instanzen des vorhergehenden Begriffs. So kann %ab*c% beispielsweise mit „ac“, „abc“ und „abbbc“ übereinstimmen; %ab[0-9]*% kann mit „ab“, „ab0“ und „ab129“ übereinstimmen.

  • +: Entspricht einer oder mehreren Instanzen des vorhergehenden Begriffs. %ab+c% kann beispielsweise mit „abc“, „abbc“ und „abbbc“ übereinstimmen, aber nicht mit „ac“.

  • .: Stimmt mit einem beliebigen Einzelzeichen überein. Zum Beispiel stimmt %.at% mit jeder Zeichenfolge mit drei Zeichen überein, die mit „at“ endet, einschließlich „hat“, „cat“, „bat“, „4at“, „#at“ und „ at“ (beginnend mit einem Leerzeichen).

    Anmerkung

    Wenn Sie eine Regex erstellen, die IP-Adressen abgleicht, ist es wichtig, den Operator . auszustellen. Beispielsweise kann %10.10.0.1% mit „10010,051“ übereinstimmen, was möglicherweise nicht der eigentliche Verwendungszweck des Ausdrucks ist.

  • \d, \D: Stimmt mit einer Ziffer bzw. einem Zeichen überein, das keine Ziffer ist. Beispielsweise stimmt %\d% mit %[0-9]% überein und %\D% mit %[^0-9]%.

    Anmerkung

    Der Operator in Großbuchstaben bezeichnet die Umkehrung seines Gegenstücks in Kleinbuchstaben.

  • \s, \S: Stimmt mit einem Leerraumzeichen/einem Nicht-Leerraumzeichen überein.

    Anmerkung

    Der Operator in Großbuchstaben bezeichnet die Umkehrung seines Gegenstücks in Kleinbuchstaben. Zu den Leerraumzeichen gehören Tabulatorzeichen (\t), Leerzeichen ( ) und Zeilenumbruch (\n).

  • \w, \W: Stimmt mit einem alphanumerischen Zeichen/einem nicht-alphanumerischen Zeichen überein. Beispielsweise stimmt %\w% mit %[a-zA-Z_0-9]% überein und %\W% mit %[^a-zA-Z_0-9]%.

    Anmerkung

    Der Operator in Großbuchstaben bezeichnet die Umkehrung seines Gegenstücks in Kleinbuchstaben.

  • \xhh: Stimmt mit der ASCII-Zuordnung für ein zweistelliges hexadezimales Zeichen überein. \x ist die Escape-Sequenz, die angibt, dass die folgenden Zeichen den hexadezimalen Wert für ASCII darstellen. hh gibt die beiden hexadezimalen Ziffern (0–9 und A–F) an, die auf ein Zeichen in der ASCII-Tabelle zeigen.

    Anmerkung

    Sie können \xhh verwenden, um nach Symbolzeichen zu suchen, die vom Filtermuster nicht unterstützt werden. Beispielsweise stimmt %\x3A% mit : überein und %\x28% mit (.