RegEx-Abgleich in der Segmentierung verwenden
Was ist Regex-Matching?
Regex-Abgleich ermöglicht es dir, Profile anhand von Textmustern statt exakter Werte zu filtern. Das ist nützlich, um Profile zu finden, die einem bestimmten Format folgen, z. B. E-Mail-Adressen bestimmter Domains oder Telefonnummern in einem bestimmten Format.
⚠️ Wichtig: Regex gleicht immer den vollständigen Wert vom Anfang bis zum Ende ab.
So verwendest du Regex
Beim Erstellen eines Segments kannst du zwei Regex-Operatoren verwenden:
- Passt auf Regex – Enthält Profile, bei denen der Wert auf deine Regex passt
- Entspricht nicht dem Regex: Enthält Profile, bei denen der Wert NICHT deinem Regex entspricht
Er kann in den folgenden Segmentbedingungen verwendet werden:
- Eigenschaften zu einer Person (einschließlich benutzerdefinierter Objekte)
2. Filter für „Was jemand getan oder nicht getan hat“ und „Schritte, die jemand in einer bestimmten Reihenfolge ausgeführt hat“
Regex-Grundlagen
Übereinstimmende Zeichen
- Buchstaben und Zahlen – normal tippen: hallo entspricht „hallo“
- Beliebige Ziffer – Verwende \d, um eine beliebige Zahl 0–9 abzugleichen
- Beliebiger Buchstabe – Verwende [a-z] für Kleinbuchstaben, [A-Z] für Großbuchstaben oder [a-zA-Z] für beides
- Entweder/oder – Verwende |, um Optionen abzugleichen: gmail|yahoo passt entweder auf „gmail“ oder „yahoo“
- Beliebig – Verwende .* zum Abgleichen beliebiger Zeichen
Sonderzeichen
Füge vor diesen einen Backslash \ hinzu, um sie wörtlich abzugleichen:
- Punkt: \\.; entspricht einem Punkt
- Pluszeichen: \+ entspricht einem Pluszeichen
- Klammern: \( und \) entsprechen Klammern
Wiederholte Muster
- {5} – Genau 5-mal (z. B. passt \d{5} auf 5 Ziffern)
- {2,4} – Zwischen 2 und 4 Mal
- ? – Optional (0 oder 1-mal)
Hinweis: Wir begrenzen wiederholte Muster auf maximal 1.000 Wiederholungen.
Häufige Beispiele
E-Mail-Adressen
- Spezifische Domain:
- .*@example\.com
- Übereinstimmungen: john@example.com, support@example.com
- Mehrere Domains:
- .*@(gmail|yahoo|hotmail)\.com
- Stimmt überein: user@gmail.com, user@yahoo.com, user@hotmail.com
- Beliebige .com E-Mail:
- .*@.*\.com
Telefonnummern
- 10-stellige US-Nummer
- \d{10}
- Übereinstimmungen: 5551234567
- Formatiert mit Klammern:
- \(\d{3}\) \d{3}-\d{4}
- Übereinstimmungen: +49 1234567
Postleitzahlen
- 5-stellige PLZ:
- \d{5}
- Übereinstimmungen: 12.345
- PLZ+4:
- \d{5}-\d{4}
- Übereinstimmungen: 12345-6789
Für weiterführende Referenzen: Unsere Implementierung verwendet Google RE2 als Standard. Hier erfährst du mehr.
RegEx-Limits
Limit | Eintrag | Beispiel |
Regex-Länge | max. 1.000 Zeichen | – |
Regex-Zeilen | max. 100 Zeilen | – |
Wiederholungen | max. 1.000 Wiederholungen | \d{1000} erlaubt |
Optionen (|) | Max. 5 auf Hauptstufe | a|b|c|d|e|f überschreitet das Limit (6 Optionen) |
Verschachtelungstiefe | Max. 5 Ebenen | ((((a)))) hat 4 Ebenen, zulässig |
Zusätzlich werden die folgenden Funktionen derzeit nicht unterstützt.
Funktion | Beispiel |
Lookahead/Lookbehind | (?=...), (?!...), (?<=...), (?<!...) |
Rückverweise | \1, \2, (\w+)\s+\1 |
Unicode-Escapes | \uXXXX, \u00A0 |
Verschachtelte Quantoren | (a+)+, (x*)*, (a{2,5})+ |
Tipps für den Erfolg
1. Regex gleicht den vollständigen Wert ab
Dein Regex muss den gesamten Wert beschreiben, nicht nur einen Teil davon.
Falsch: gmail\.com (entspricht nur dem Text „gmail.com“)
Rechts: .*@gmail\.com (entspricht vollständigen E-Mails wie john@gmail.com)
2. Punkte immer escapen
Beim Abgleich von .com, .net, usw., schreibe es als \.com mit einem Backslash.
Falsch: @gmail.com (Punkt entspricht einem beliebigen Zeichen)
Rechts: @gmail\.com (entspricht einem wörtlichen Punkt)
3. Verwende .* für „Anything“
Alle Zeichen mit .* abgleichen
- .*@company\.com – Jede E-Mail-Adresse unter company.com
- \+.* – Alles, was mit + beginnt
- .*dringend.* - Text mit „dringend“
4. Starte einfach und verfeinere dann
Mit einem einfachen Regex beginnen und nach und nach Details hinzufügen.
- Beispiel: .*@gmail\.com → [a-z]+\.[a-z]+@gmail\.com
Splitte komplexe Logik nach Möglichkeit in mehrere einfache Filter auf.
- Beispiel für „Gmail- oder Yahoo-E-Mails aus Kalifornien“:
- Filter 1: E-Mail entspricht Regex .*@(gmail|yahoo)\.com
- Filter 2: Bundesstaat ist gleich Kalifornien
5. RegEx ist standardmäßig groß-/kleinschreibungssensitiv
Wenn du eine Anweisung ohne Berücksichtigung der Groß- und Kleinschreibung machen möchtest, kannst du (?i) als Präfix hinzufügen.
- Produktübereinstimmungen (?i)^iphone$
Wann du RegEx im Vergleich zu Standard-Operatoren verwenden solltest
Verwende Regex, wenn du bestimmte Formate oder Muster abgleichen musst. Für einfachere Anforderungen empfehlen wir dringend, stattdessen Standardoperatoren zu verwenden:
- Enthält – Text wird überall angezeigt
- Beginnt mit – stimmt mit dem Anfang überein
- Endet mit – Entspricht dem Ende
- Gleich – Exakte Übereinstimmung