Regex-tester

/ /

Typ een reguliere expressie, plak de tekst om hem tegen te testen, en de tester voert het patroon uit en toont elke match die hij vindt. Elk resultaat laat zien waar de match begint en de inhoud van elke capture-groep, zodat u precies ziet wat het patroon opving. Schakel de vlaggen hoofdletterongevoelig, meerregelig en dotall in om het gedrag van het patroon te wijzigen.

Hoe test u een regex

  1. 1

    Voer uw patroon in

    Typ de expressie zonder scheidingstekens; de tester zet er `/ /` omheen voor u. Een ongeldig patroon toont een duidelijke foutmelding in plaats van stilletjes te mislukken.

  2. 2

    Kies de vlaggen

    Zet `i` (hoofdletterongevoelig), `m` (meerregelig) of `s` (dotall) aan om te herkennen zoals u nodig hebt.

  3. 3

    Plak de testtekst

    Voeg de tekst toe waarin u wilt zoeken. De tester doorloopt alles en vindt elke match, niet alleen de eerste.

  4. 4

    Inspecteer de matches

    Elke match toont zijn positie (offset) in de tekst, de volledige match en elke genummerde capture-groep.

Wat de tester u laat zien

Een patroon uit het hoofd draaien, of met een snelle grep, zegt u of iets matcht. De tester toont daarnaast:

  • Elke match, met zijn positie. Hij doorzoekt altijd de hele tekst en meldt elke match met de tekenoffset waar hij begint.
  • Welke groep wat opving. Elke match wordt opgesplitst in de volledige match en de genummerde capture-groepen, zodat u kunt bevestigen dat een (...) het verwachte stuk oppikte.
  • Wat de vlaggen veranderen. Zet i, m of s aan en test opnieuw om te zien hoe hoofdletterongevoelig, meerregelig of dotall het resultaat verandert.

De vlaggen, kort uitgelegd

Vlag Naam Wat het verandert
i Hoofdletterongevoelig A matcht ook a, en omgekeerd
m Meerregelig ^ en $ matchen aan het begin en einde van elke regel, niet alleen van de hele tekst
s Dotall . matcht ook regeleinden

Het matchen is altijd globaal: de tester geeft elke match in de tekst terug, dus er is geen aparte “global”-vlag om in te stellen. Patronen draaien op de PCRE-engine met Unicode-ondersteuning, zodat klassen als \w en \d zich consistent gedragen bij internationale tekst.

Veelvoorkomende regex-problemen die dit helpt opsporen

Symptoom Gebruikelijke oorzaak
Eén reusachtige match die alles omvat .* is gulzig; gebruik .*? of een genegeerde klasse als [^"]*
^ of $ matcht maar één keer De m-vlag ontbreekt bij meerregelige tekst
. stopt bij regeleinden De s-vlag ontbreekt
Capture-groepen in onverwachte volgorde Geneste ( verschuiven de groepsnummers; tel ze van links naar rechts
Een patroon dat traag draait Geneste * of + over overlappende alternatieven veroorzaken veel backtracking

Tips voor snellere, veiligere patronen

  • Veranker met ^ wanneer de match aan het begin start, zodat de engine niet de hele tekst doorloopt.
  • Verkies een tekenklasse ([abc]) boven alternatie (a|b|c); klassen zijn sneller in elke grote engine.
  • Vervang een gulzige .* door een genegeerde klasse als [^"]* wanneer u het eindteken kent, zodat er geen backtracking is.

Veelgestelde vragen

Hij draait uw patroon met PCRE, de engine die in PHP is ingebouwd, met de Unicode-modus aan. PCRE-specifieke syntaxis zoals \d, \b en lookarounds werkt zoals verwacht. Gaat u het patroon in JavaScript, Python of een andere taal gebruiken, controleer dan de kleine syntaxisverschillen voordat u het uitrolt.

Elke match. De tester doorzoekt altijd de hele tekst, dus er is geen aparte “global”-vlag om in te stellen. Elke match wordt met zijn positie in de tekst getoond.

Ja. Elke match wordt opgesplitst in de volledige match en elke genummerde capture-groep, zodat u kunt bevestigen welk deel van de tekst elke (...) opving.

i maakt het matchen hoofdletterongevoelig, m laat ^ en $ bij elke regelgrens matchen, en s laat . regeleinden matchen. Zet ze aan of uit en test opnieuw om de resultaten te vergelijken.

De tester toont een duidelijke foutmelding die het probleem beschrijft, zoals een niet-gesloten haakje of een niet-afgesloten groep, in plaats van stilletjes geen matches terug te geven.

Gerelateerde tools

Tool beschikbaar in andere talen