Regex
Regex-testare
Testa reguljära uttryck mot din egen text, live.
Om reguljära uttryck
Ett reguljärt uttryck (regex) är ett mönster som beskriver en uppsättning strängar — används för att söka, validera eller extrahera text. Den här testaren körs JavaScripts inbyggda regex-motor helt i din webbläsare, så att du kan experimentera med ett mönster mot riktig text och se exakt vad det matchar.
Kvantifierare finns i två lätt förväxlade varianter: giriga (+, *, {2,5}) konsumerar så mycket som möjligt innan de backar (backtracking) för att låta resten av mönstret matcha, medan deras lata motsvarigheter (+?, *?, {2,5}?) i stället konsumerar så lite som möjligt. Mot <a><b> med <.+> tar en girig matchning hela strängen, medan <.+?> stannar vid det första >. Grupper har en liknande förgrening: (...) fångar den matchade texten för senare referens, medan (?:...) grupperar på samma sätt utan att fånga — användbart när du behöver gruppens prioritet men inte dess utdata.
Var du stöter på det
- Validera inmatningsformat som e-postadresser, telefonnummer eller postnummer
- Extrahera strukturerade värden ur loggrader eller ostrukturerad text
- Skriva ett sök-och-ersätt-mönster för en refaktorering över många filer
- Felsöka varför ett mönster matchar mer, eller mindre, än du förväntade dig
Vanliga frågor
Varför matchar mitt mönster bara en gång?
Utan g-flaggan (global) slutar JavaScripts regex-metoder efter den första matchningen — det är det faktiska beteendet din kod också skulle se, inte en begränsning i det här verktyget. Aktivera g för att hitta alla matchningar.
Skickas något jag skriver här till en server?
Nej. Matchningen sker helt i din webbläsare med JavaScripts inbyggda regex-motor — ingenting överförs någonstans, vilket även undviker att exponera en server för ett avsiktligt långsamt mönster med "katastrofal backtracking".
Varför fastnar sidan ibland på ett mönster?
Vissa mönster, som nästlade kvantifierare som (a+)+, kan orsaka katastrofal backtracking, där matchningstiden växer exponentiellt med indatans längd. Om ett mönster hänger sig är det mönstret självt, inte det här verktyget — försök med en kortare testtext eller skriv om mönstret för att undvika nästlad upprepning.
Vad är skillnaden mellan giriga och lata kvantifierare?
En girig kvantifierare (+, *, {2,5}) matchar först så mycket text som möjligt och backar bara om det får resten av mönstret att misslyckas. Dess lata motsvarighet, skriven med ett efterföljande ? (+?, *?), matchar i stället så lite som möjligt och utökas bara när den måste. Mot <a><b> matchar det giriga <.+> hela strängen, medan det lata <.+?> stannar vid det första >. Ta till lata kvantifierare när "kortast möjliga matchning" faktiskt är det du vill ha.