Advertentie

RegEx-tester

Regelmatig testen en debuggen expressies

Geen overeenkomsten gevonden

Algemene patronen

Wat is normaal Uitdrukkingen?

Reguliere expressies (regex of regexp) zijn patronen die worden gebruikt om tekencombinaties in snaren. Ze zijn een ongelooflijk krachtig hulpmiddel voor het zoeken, valideren, extraheren en tekst vervangen. Oorspronkelijk ontwikkeld in de jaren vijftig, wordt regex nu in vrijwel elk programma ondersteund programmeertaal en teksteditor.

Deze tool maakt gebruik van de regex-engine van JavaScript, die de ECMAScript-standaard implementeert. Test uw patronen hier voordat u ze in uw code gebruikt: alle verwerking vindt plaats in uw browser zonder gegevens naar servers gestuurd.

Regex-syntaxis Snelle referentie

Teken Klassen

  • \d - Elk cijfer (0-9)
  • \w - Woordteken (a-z, A-Z, 0-9, _)
  • \s - Witruimte (spatie, tab, nieuwe regel)
  • . - Elk teken behalve nieuwe regel
  • [abc] - Elk van a, b of c
  • [^abc] - Geen a, b of c

Kwantificatoren

  • * - 0 of meer
  • + - 1 of meer
  • ? - 0 of 1 (optioneel)
  • {n} - Precies n keer
  • {n,} - n of meer keer
  • {n,m} - Tussen n en m keer

Ankers & Grenzen

  • ^ - Begin van string/regel
  • $ - Einde van string/regel
  • \b - Woordgrens
  • \B - Niet-woordgrens

Groepen & Afwisseling

  • (abc) - Capture-groep
  • (?:abc) - Niet-capture-groep
  • a|b - A of b
  • \1 - Terugverwijzing naar groep 1

Vlaggen begrijpen

g (algemeen) - Find all matches, not just the first one
i (hoofdletters negeren) - Case-insensitive matching (A matches a)
m (meerdere regels) - ^ and $ match start/end of each line, not just the string
s (dotAll) - Makes . match newline characters too

Veelgestelde vragen

Waarom moet ik ontsnappen backslashes?

In JavaScript-tekenreeksen is backslash een escape-teken. Om een letterlijke backslash op te nemen in a regex-patroon uit een string, heb je \\nodig. Voor \\d in een string wordt bijvoorbeeld \d in de regex.

Wat is het verschil tussen * en +?

* overeenkomsten nul of meer exemplaren (kan niets matchen). + vereist at minste één voorval. a* komt bijvoorbeeld overeen met "", "a", "aaa", terwijl alleen a+ komt overeen met "a", "aaa".

Hoe koppel ik een letterlijke waarde periode of beugel?

Speciale regex-tekens moeten worden voorzien van een backslash. Gebruik \.om een ​​letterlijke punt te matchen. Voor haakjes: \[ en \]. Tekens die moeten ontsnappen: . * + ? ^ $ { } [ ] \ | ( )

Waarom is mijn patroon te veel matchen?

Regex-kwantificatoren zijn standaard 'hebzuchtig': ze komen zoveel mogelijk overeen. Voeg ? toe na a kwantificator voor 'luie' matching (bijvoorbeeld .*? in plaats van .*).

Algemene gebruiksscenario's

  • Formuliervalidatie: Valideer e-mails, telefoon getallen, URL's en aangepaste notaties
  • Zoeken en vervangen: Zoeken en transformeren tekstpatronen in editors en code
  • Logparsing: Extraheer tijdstempels, IP's, en foutcodes uit logbestanden
  • Gegevensextractie: Specifieke gegevens ophalen uit HTML, JSON of ongestructureerde tekst
  • Invoeropschoning: Verwijderen of ontsnappen gevaarlijke karakters
Advertentie