RegEx-matching gebruiken in segmentatie
Wat is regex-matching?
Met regex-matching kun je profielen filteren op basis van tekstpatronen in plaats van exacte waarden. Dit is handig om profielen te vinden die een specifieke indeling volgen, zoals e-mailadressen van bepaalde domeinen of telefoonnummers in een bepaalde indeling.
⚠️ Belangrijk: Regex matcht altijd de volledige waarde van begin tot eind.
Hoe je regex gebruikt
Wanneer je een segment maakt, kun je twee regex-operators gebruiken:
- Komt overeen met regex - Bevat profielen waarbij de waarde overeenkomt met je regex
- Komt niet overeen met regex - Bevat profielen waarbij de waarde NIET overeenkomt met je regex
Je kunt dit gebruiken in de volgende segmentvoorwaarden:
- Eigenschappen over iemand (inclusief aangepaste objecten)
2. Filters op "Wat iemand wel of niet heeft gedaan" en "Stappen die iemand in een specifieke volgorde heeft gezet"
Basisprincipes van regex
Overeenkomende tekens
- Letters en cijfers - Typ normaal: hallo komt overeen met "hallo"
- Elk cijfer - Gebruik \d om elk getal 0-9 te matchen
- Elke letter: gebruik [a-z] voor kleine letters, [A-Z] voor hoofdletters of [a-zA-Z] voor beide
- Of/of - Gebruik | om opties te matchen: gmail|yahoo matcht "gmail" of "yahoo"
- Alles: gebruik .* om overeen te komen met alle tekens
Speciale tekens
Voeg een backslash \ toe vóór deze om ze letterlijk te laten overeenkomen:
- Punt: \\. komt overeen met een punt
- Plusteken: \+ komt overeen met een plusteken
- Haakjes: \( en \) komen overeen met haakjes
Herhalende patronen
- {5} - Precies 5 keer (bijv. \d{5} komt overeen met 5 cijfers)
- {2,4} - Tussen 2 en 4 keer
- ? - Optioneel (0 of 1 keer)
Opmerking: we beperken herhalende patronen tot maximaal 1.000 herhalingen
Veelvoorkomende voorbeelden
E-mailadressen
- Specifiek domein:
- .*@example\.com
- Overeenkomsten: john@example.com, support@example.com
- Meerdere domeinen:
- .*@(gmail|yahoo|hotmail)\.com
- Komt overeen met: user@gmail.com, user@yahoo.com, user@hotmail.com
- Elke .com E-mail:
- .*@.*\.com
Telefoonnummers
- 10-cijferig VS-nummer
- \d{10}
- Komt overeen met: 5551234567
- Opgemaakt met haakjes:
- \(\d{3}\) \d{3}-\d{4}
- Komt overeen met: (555) 123-4567
Postcodes
- ZIP van 5 cijfers:
- \d{5}
- Komt overeen met: 12345
- Postcode+4:
- \d{5}-\d{4}
- Overeenkomsten: 12345-6789
Voor geavanceerde referenties: onze implementatie gebruikt Google RE2 als onze standaard. Lees hier meer.
RegEx-limieten
Limiet | Waarde | Voorbeeld |
Lengte van regex | max. 1.000 tekens | - |
Regex-regels | max. 100 regels | - |
Herhalingen | max. 1.000 herhalingen | \d{1000} toegestaan |
Opties (|) | max. 5 op hoofdniveau | a|b|c|d|e|f overschrijdt de limiet (6 opties) |
Nestdiepte | Maximaal 5 niveaus | ((((a)))) heeft 4 niveaus, toegestaan |
Daarnaast worden de volgende functies momenteel niet ondersteund.
Uitgelicht | Voorbeeld |
Lookahead/Lookbehind | (?=...), (?!...), (?<=...), (?<!...) |
Terugverwijzingen | \1, \2, (\w+)\s+\1 |
Unicode-escapes | \uXXXX, \u00A0 |
Geneste kwantoren | (a+)+, (x*)*, (a{2,5})+ |
Tips voor succes
1. Regex komt overeen met de volledige waarde
Je regex moet de volledige waarde beschrijven, niet alleen een deel ervan.
Onjuist: gmail\.com (komt alleen overeen met de tekst "gmail.com")
Rechts: .*@gmail\.com (komt overeen met volledige e-mails zoals john@gmail.com)
2. Escape punten altijd
Bij het matchen van .com, .net, enz., schrijf je dit als \.com met een backslash.
Onjuist: @gmail.com (punt komt overeen met elk teken)
Rechts: @gmail\.com (komt overeen met een letterlijke punt)
3. Gebruik .* voor "Alles"
Alle tekens matchen met .*
- .*@company\.com - Elk e-mailadres bij company.com
- \+.* - Alles wat begint met +
- .*dringend.* - Tekst die "dringend" bevat
4. Begin eenvoudig en verfijn daarna
Begin met een basis-regex en voeg geleidelijk details toe.
- Voorbeeld: .*@gmail\.com → [a-z]+\.[a-z]+@gmail\.com
Splits complexe logica waar mogelijk op in meerdere eenvoudige filters.
- Voorbeeld voor "Gmail- of Yahoo-e-mails uit Californië":
- Filter 1: E-mail komt overeen met regex .*@(gmail|yahoo)\.com
- Filter 2: staat is gelijk aan Californië
5. RegEx is standaard hoofdlettergevoelig
Als je een statement hoofdletterongevoelig wilt maken, kun je (?i) als voorvoegsel toevoegen.
- Product komt overeen met (?i)^iphone$
Wanneer je RegEx gebruikt vs Standard-operators
Gebruik regex als je specifieke indelingen of patronen moet matchen. Voor eenvoudigere behoeften raden we je sterk aan om in plaats daarvan standaardoperators te gebruiken:
- Bevat - Tekst verschijnt overal
- Begint met - Komt overeen met het begin
- Eindigt op - Komt overeen met het einde
- Is gelijk aan - Exacte overeenkomst