Zusammenfassung

Dieser Regex Generator verwandelt eine Liste von Hosts, Pfaden, Versionen, E-Mail-Domains oder HTTP-Statuscodes in ein maskiertes Muster für Rollout-Targeting-Regeln, Prometheus-Matcher und Log-Filter. Sie wählen zwischen Suchtreffer (JavaScript, Go, grep) und vollständigem Treffer (Prometheus, Alertmanager, Envoy) und testen Zeilen direkt im Browser. Nichts verlässt Ihren Rechner.

Kostenloses Tool

Regex Generator für Rollout-Targeting und Log-Filter

Fügen Sie Hosts, Pfade, Versionen oder Statuscodes ein, die Sie matchen wollen. Sie erhalten ein maskiertes Muster für Ihre Regex-Engine und prüfen es an echten Zeilen, bevor es in die Produktion geht.

Laptop bei Nacht mit gefiltertem Terminal-Output auf einem Entwickler-Schreibtisch

Regex aus einer Liste von Werten erzeugen

Wählen Sie, was Sie matchen wollen, listen Sie die Werte auf und wählen Sie die Engine. Muster und Testergebnisse aktualisieren sich beim Tippen.

Erzeugtes Muster

    So funktioniert es

    Was der Generator mit Ihren Werten macht

    Maskiert jedes Literal

    Punkte, Schrägstriche, Klammern und Pluszeichen in Ihren Werten werden maskiert, damit api.internal.example.com nicht api-internal-example-com treffen kann. Handgeschriebene Allowlists scheitern hier häufiger als an jeder anderen Stelle.

    Schreibt für Ihre Engine

    Suchengines brauchen ^ und $, um einen Treffer zu verankern. Prometheus, Alertmanager und Envoy matchen den ganzen String und brauchen .* für Präfix- und Suffix-Regeln. Sie wählen die Engine, der Generator passt das Muster an.

    Testen vor dem Ausliefern

    Jede Testzeile bekommt ein Badge Treffer oder kein Treffer, anhand des Musters, das Sie gleich kopieren. Nehmen Sie bewusst Grenzfälle auf: checkout-v22 neben checkout-v2, example.com.evil.io neben example.com.

    Wo Muster scheitern

    Der Regex, der das Review bestanden hat und trotzdem jemanden geweckt hat

    Die meisten Regex-Vorfälle in Rollout- und Alerting-Konfigurationen sind nicht exotisch. Eine Targeting-Regel, die drei interne Hosts abdecken sollte, hat auch einen Doppelgänger erfasst. Ein Alert-Matcher mit Ankern, die Prometheus gar nicht braucht, hat still einen Service ausgeschlossen. Ein Log-Filter auf Teilstring hat genau die Fehler verborgen, die er zählen sollte. Das Muster ist selten zu clever. Es ist fast immer zu locker oder nur an Zeilen getestet worden, die treffen sollten. Eine Regel, die einen Rollout steuert, sollte zuerst an den Zeilen getestet werden, die nicht treffen dürfen.

    • Punkte in jedem Hostnamen maskieren
    • Wissen, ob Ihre Engine selbst verankert
    • Die Grenzfälle testen, nicht nur die Treffer
    • Eine literale Liste bevorzugen, wenn die Menge klein und stabil ist
    Gang zwischen Serverracks mit grünen Statusleuchten
    Anwendung

    Von einer Liste von Werten zu einem Muster, dem Sie trauen

    1. 1

      Treffertyp wählen

      Exakte Werte für Host- und Flag-Key-Allowlists, Präfix für Routengruppen, Statuscodes für Alert-Regeln, Versionsfamilien für Rollout-Targeting nach App-Version.

    2. 2

      Engine wählen

      Suchtreffer für Code und grep. Vollständiger Treffer für Prometheus-Matcher, Alertmanager-Routen und Envoy. Diese eine Wahl beseitigt den häufigsten Fehler bei der Verankerung.

    3. 3

      Grenzfälle ins Testfeld einfügen

      Fügen Sie einen ähnlichen Host, eine benachbarte Version und einen Statuscode knapp außerhalb des Bereichs hinzu. Zeigt eines davon Treffer, verengen Sie die Werte, bevor Sie das Muster kopieren.

    Häufige Fragen

    Ist dieser Regex Generator kostenlos, und werden meine Werte irgendwohin gesendet?
    Er ist kostenlos und läuft vollständig in Ihrem Browser. Die Werte, das Muster und Ihre Testzeilen werden nie an einen Server gesendet. Die einzige Anfrage ist ein anonymer Zähler, der nur erfasst, dass das Tool benutzt wurde.
    Auf welche Regex-Engine zielt die Ausgabe?
    Zwei Verhaltensweisen decken den Großteil der Infrastrukturarbeit ab. Suchtreffer passt zu JavaScript, Go regexp, grep -E und PCRE, wo ein Muster überall in der Zeile treffen kann; das Tool ergänzt bei Bedarf ^ und $. Vollständiger Treffer passt zu Prometheus, Alertmanager und Envoy, die den ganzen String als Treffer werten; das Tool ergänzt dort .* für Präfix-, Suffix- oder Enthält-Regeln.
    Warum ignoriert Prometheus meine Anker ^ und $?
    Prometheus-Label-Matcher sind vollständig verankert. Der Ausdruck env=~"prod" wird als ^(?:prod)$ ausgewertet, daher trifft ein für grep geschriebenes Muster stillschweigend weniger als erwartet oder gar nichts. Wählen Sie die Engine für vollständigen Treffer, dann schreibt der Generator das Muster so, wie Prometheus es liest.
    Vermeidet das Muster katastrophales Backtracking?
    Die erzeugten Muster verwenden nur Literale, begrenzte Zeichenklassen und flache Alternativen. Sie enthalten keine verschachtelten Quantoren, der übliche Auslöser von ausufernem Backtracking in JavaScript und PCRE. RE2-basierte Engines wie Go und Envoy laufen unabhängig davon in linearer Zeit.
    Wie werden Sonderzeichen behandelt?
    Jeder literale Wert wird maskiert. Ein Host wie api.internal.example.com wird zu api\.internal\.example\.com, damit der Punkt kein beliebiges Zeichen mehr trifft. Das ist der häufigste Fehler in handgeschriebenen Allowlists, und er lässt api-internal-example-com durch.
    Kann ich das Muster in einer Feature-Flag-Targeting-Regel verwenden?
    Ja, sofern Ihre Flag-Plattform einen Regex- oder Pattern-Operator auf einem Kontextattribut wie Hostname, Pfad oder E-Mail-Adresse unterstützt. Prüfen Sie vor dem Einfügen, welche Engine sie verwendet. Bietet sie nur exakte Gleichheit oder Startswith-Operatoren, ist eine Liste literaler Werte sicherer als ein Regex.
    Was macht er nicht?
    Er leitet kein Muster aus Beispielen ab und erzeugt keine numerischen Bereiche oder Lookaheads. Er baut ein Muster aus einer Liste von Werten, die Sie angeben, nach Regeln, die Sie nachlesen können. Testzeilen werden mit der JavaScript-Engine ausgewertet; prüfen Sie engine-spezifisches Verhalten in Ihrem eigenen Stack, bevor Sie ausliefern.

    Den Rollout am SLO festmachen, nicht am Bauchgefühl

    Targeting-Regeln entscheiden, wer eine Änderung bekommt. Der AI Pilot von upstreamapi entscheidet, ob sie weiterläuft, und rollt bei Überschreitung Ihrer SLO-Schwelle selbstständig zurück.