🌐 SV

🔣 Regex-testare

Testa reguljära uttryck i realtid och visa matchresultat. Inkluderar flagginställningar, gruppfångst och ett bibliotek med vanliga mönster.

Vanliga mönster

GUIDE

Las mer

01

1. Grunderna i reguljära uttryck

Reguljära uttryck (Regex) är kraftfulla verktyg för att definiera, söka, extrahera och ersätta textmönster. Matcha bokstavligt (\d för siffror, \w för ordtecken) eller använd specialtecken för mer avancerade mönster. Exempel: ^[a-z]+$ betyder strängar som bara innehåller små bokstäver. ^ är start, $ är slut, [a-z] är a till z, + betyder en eller fler. Stöds i nästan alla programmeringsspråk och textredigerare, och är viktigt för validering av indata, datatolkning och textersättning.

02

2. Samling av vanliga mönster

Vanliga regexmönster i praktiken: E-post: ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$, Telefon (USA): ^(\+1)?[-.\s]?\(?[0-9]{3}\)?[-.\s]?[0-9]{3}[-.\s]?[0-9]{4}$, URL: ^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b, Datum (YYYY-MM-DD): ^\d{4}-\d{2}-\d{2}$, Lösenord (minst 8 tecken, versal+gemen+siffra+specialtecken): ^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$. Använd dessa mönster som grund och anpassa dem för ditt projekt.

03

3. Förklaring av regexflaggor

Regexflaggor styr sökbeteendet. g(global): hittar alla träffar, inte bara den första. i(ignoreCase): skiftlägesokänslig matchning (/hello/i matchar Hello, HELLO). m(multiline): ^ och $ matchar början/slutet av varje rad. s(dotAll): . matchar radbrytningstecken (\n). u(unicode): hanterar full Unicode korrekt (emoji osv.). y(sticky): startar sökningen endast vid lastIndex-positionen. Exempel: /hello/gi hittar alla hello utan att bry sig om skiftläge.

04

4. Fångstgrupper och bakreferenser

Parenteser () skapar grupper som fångar matchade delar för senare användning. Exempel: /(\d{4})-(\d{2})-(\d{2})/ där $1 är år, $2 är månad, $3 är dag. JavaScripts match()-resultat innehåller fångstgrupper. Bakreferenser \1, \2 matchar samma text som tidigare grupper. Exempel: /(\w+)\s+\1/ matchar "hello hello". Icke-fångande grupper (?:) grupperar utan att fånga för bättre prestanda.

05

5. Lookahead och lookbehind

Lookahead och lookbehind kontrollerar mönster före/efter utan att inkludera dem i matchen. Positiv lookahead (?=): /\d(?=px)/ matchar siffror före px ("100" i "100px"). Negativ lookahead (?!): /\d(?!px)/ matchar siffror som inte följs av px. Positiv lookbehind (?<=): /(?<=\$)\d+/ matchar siffror efter $ ("100" i "$100"). Negativ lookbehind (?<!): motsatsen. Används ofta i lösenordsvalidering för att kontrollera att vissa tecken finns med.

06

6. Prestandaoptimering för regex

Komplexa regex kan orsaka prestandaproblem. Var så specifik som möjligt ([a-z]+ i stället för .*). Ersätt onödiga fångstgrupper med icke-fångande grupper (?:). Använd lata kvantifierare (*?, +?) i stället för giriga (*,+) för att minska backtracking. För stora texter kan strängmetoder (indexOf, startsWith) vara snabbare än regex. Förkompilera regex för återanvändning (skapa inte nya RegExp om och om igen). Var uppmärksam på ReDoS-attacker (Regular Expression Denial of Service) - använd aldrig användarindata direkt som regexmönster.

Vanliga fragor

Kan jag kombinera flera regexflaggor?
Ja, du kan slå på flera flaggor samtidigt - till exempel hittar g och i tillsammans alla träffar utan att bry sig om skiftläge. Kryssa bara i de alternativ du behöver så tillämpar verktyget dem tillsammans.
Kan jag använda de inbyggda vanliga mönstren som de är?
Mönster som e-post, telefon, URL och datum fungerar direkt i de flesta fall, men det är bäst att anpassa dem efter projektets specifika behov (t.ex. landspecifika telefonformat).
Vad ska jag kontrollera när det inte finns några träffar?
Kontrollera först stavfel i mönstret, saknade escape-tecken (\. i stället för .) och flagginställningar. "No matches found" betyder att regexet är giltigt men inte matchar din teststräng.
Hur visas fångstgrupper i resultaten?
Det här verktyget listar inte fångade gruppvärden separat. I stället markerar det varje träff i teststrängen och visar det totala antalet träffar. Du kan fortfarande skriva fångstgrupper i ditt mönster, men för att kontrollera vad $1, $2 osv. faktiskt fångade måste du själv inspektera det (t.ex. via webbläsarkonsolen).
Varför går komplexa regexmönster långsamt?
Det beror ofta på giriga kvantifierare eller nästlade grupper som orsakar mycket backtracking. Mer specifika mönster och lata kvantifierare (*?, +?) hjälper vanligtvis.