Regex Tester
Testa reguljära uttryck med live-markering, capture groups och förhandsvisning av ersättningar — helt och hållet i din webbläsare.
Motor: reguljära uttryck i JavaScript (ECMAScript), körda av din webbläsare. Beteendet kan skilja sig från PCRE, Python, Go, Java eller .NET.
Förklara mönstret
Ange ett mönster för att se det förklarat token för token.
Mönsterbibliotek
Klicka på ett mönster för att läsa in det (med exempeltext) i testaren.
Ett fall per rad. Börja med "+ " om mönstret måste matcha, eller "- " om det INTE får matcha (flaggorna g och y ignoreras här).
Generera kod
Ange ett mönster för att generera kod.
Mönstret kopieras som det är skrivet (bara namngivna grupper, flaggor och ersättningstokens anpassas). Kontrollera stödet för bakåtblick, bakåtreferenser och Unicode i målmotorn.
- \d — valfri siffra (0–9)
- \w — valfritt ordtecken (bokstav, siffra, understreck)
- \s — valfritt blanksteg/whitespace-tecken
- . — valfritt tecken utom radbrytning
- ^ — start av strängen (eller raden, med multiline-flaggan)
- $ — slut av strängen (eller raden, med multiline-flaggan)
- * — noll eller fler av föregående token
- + — en eller fler av föregående token
- ? — noll eller en av föregående token
- {n,m} — mellan n och m upprepningar
- (...) — fångande grupp, (?:...) — icke-fångande grupp
- \b — ordgräns, | — alternation (ELLER)
Hur fungerar det egentligen att testa ett regex i webbläsaren?
Ett reguljärt uttryck är ett kompakt mönsterspråk för att matcha text — allt från "ser det här ut som en e-postadress" till "hitta alla telefonnummer i det här dokumentet" till "ta bort HTML-taggar från den här strängen". Problemet är att regex-syntax är notoriskt lätt att få subtilt fel: en `.` som borde escapas, en girig `*` som fångar mer än tänkt, en grupp som inte fångar det du förväntar dig. Att skriva ett mönster i blindo och först upptäcka att det är fel när det redan körs mot produktionsdata är ett dåligt sätt att lära sig den läxan.
Det här verktyget körs helt på JavaScripts egen inbyggda `RegExp`-motor och exekverar direkt i din webbläsare i samma stund du skriver — ingen server är inblandad, så vilken text du än testar mot (som kan vara riktig användardata, loggrader eller vad som helst du helst inte vill klistra in i en tredjepartstjänst) lämnar aldrig din dator. Eftersom det är exakt samma motor som din JavaScript-kod kommer att köra i produktion är det du ser här — vilka tecken som matchar, hur giriga kvantifierare beter sig, om en grupp fångade något — exakt vad du får vid körning, inte en approximation från en annan regex-dialekt.
Skriv ett mönster och slå på de flaggor du behöver: `g` för att hitta alla träffar istället för att stanna vid den första, `i` för skiftlägesokänslig matchning, `m` för att låta `^` och `$` matcha början/slutet av varje rad istället för hela strängen, `s` för att låta `.` matcha radbrytningar också. Varje träff i din teststräng markeras live, och varje träff bryts ner nedanför i sin fullständiga matchade text, sin position och eventuella capture groups — inklusive namngivna grupper som `(?<year>\d{4})` — så du direkt kan se om gruppen du tänkt extrahera faktiskt är den som matchade. Sektionen Ersätt visar exakt vad `String.replace()` skulle producera med ditt mönster och en ersättningssträng, inklusive gruppreferenser som `$1` eller `$<year>`.
Snabbreferensen nedanför täcker de tokens folk glömmer oftast mitt i arbetet — skillnaden mellan `*` och `+`, vad en non-capturing group `(?:...)` används till, hur `\b` markerar en ordgräns — utan att behöva lämna sidan för att slå upp dem. När du väl har ett mönster som beter sig som du vill mot realistisk testdata är det redo att klistras rakt in i din kod. Om du behöver validera eller omformatera själva den omgivande datan är verktygen JSON Formatter & Validator och Text Diff Checker naturliga följeslagare.
Vanliga frågor
Kan ett dåligt regexmönster få sidan att hänga sig?
Nej — matchningen körs i en separat Web Worker med en hård tidsgräns, så inte ens ett mönster med katastrofal backtracking kan låsa din flik.
Visas både namngivna och numrerade fångstgrupper?
Ja — varje träff listar sina numrerade grupper och eventuella namngivna grupper som (?<year>\d{4}).
Kan jag förhandsgranska en ersättning innan jag använder den i kod?
Ja — panelen Ersätt visar exakt vad String.replace() skulle ge, inklusive gruppreferenser.