tigtools

Regex-testare

Ange ett mönster och lite text för att se varje träff markerad, med dess position och fångstgrupper. Använder din webbläsares JavaScript-regexmotor.

Körs i din webbläsare Ingen registrering

Flaggor

Använd $1, $2 … för numrerade grupper, $<name> för namngivna grupper, $& för hela träffen och $$ för ett dollartecken.

Så här använder du det

  1. Skriv ett reguljärt uttryck i fältet Mönster, utan omgivande snedstreck.
  2. Kryssa i de flaggor du behöver. g (global) hittar varje träff i stället för bara den första.
  3. Klistra in texten att söka i. Träffar markeras, och varje träff listas med sitt index och sina fångstgrupper.
  4. Ange eventuellt en ersättning som $2-$1 för att förhandsgranska resultatet av String.replace.

Så fungerar det

Testaren kör ditt mönster med webbläsarens inbyggda RegExp-objekt, så resultaten blir exakt vad JavaScript-kod (ECMAScript) i den webbläsaren skulle producera. Andra språk använder andra regex-dialekter: PCRE (PHP), Pythons re-modul, Java och .NET har funktioner som JavaScript saknar, till exempel possessiva kvantifierare (a++), atomära grupper ((?>…)), inline-modifierare som (?i) och rekursion, och de skiljer sig i detaljer som \A- och \Z-ankare. Testa ett mönster i rätt språk innan du litar på det där. Lookbehind ((?<=…)), namngivna grupper ((?<name>…)) och Unicode-egenskapsescapes (\p{L} med u-flaggan) fungerar i alla aktuella webbläsare.

Utan flaggan g eller y hittas bara den första matchningen, precis som med RegExp.exec. Nolllängdsmatchningar, till exempel för ^ eller \b, listas men markeras inte; efter en sådan flyttas sökningen framåt med ett tecken (en kodpunkt med u-flaggan), precis som String.matchAll gör. Fångstgrupper visas med nummer och, när de har definierats, med namn; en grupp som inte deltog i matchningen markeras som att den saknar värde, vilket skiljer sig från en tom matchning.

Vissa mönster, som (a+)+$ på en lång rad utan matchning, tar exponentiell tid att misslyckas (katastrofal backtracking). För att minska risken startar matchningen en stund efter att du slutat skriva, endast de första 100 000 tecknen i texten genomsöks och högst 1 000 matchningar samlas in. Ett patologiskt mönster kan fortfarande göra fliken svarslös ett tag; om det händer, förenkla mönstret eller förkorta texten.

Exempel

Extrahera datum

Mönstret (\d{4})-(\d{2})-(\d{2}) med flaggan g på ”Due 2026-03-15, paid 2026-04-02” hittar två matchningar. Grupp 1 är året; ersättningen $3.$2.$1 gör om texten till ”Due 15.03.2026, paid 02.04.2026”.

Namngivna grupper för läsbar kod

(?<key>\w+)=(?<value>[^&]*) på frågesträngen a=1&b=two listar nyckel och värde för varje par, vilket motsvarar vad match.groups.key och match.groups.value returnerar i JavaScript.

Skiftlägesokänslig sökning över rader

^error:.* med flaggorna g, i och m matchar varje rad i en logg som börjar med Error:, ERROR: eller error:, eftersom m gör att ^ matchar i början av varje rad.

Vanliga frågor

Kommer mitt regex att fungera på samma sätt i Python, PHP eller Java?

Inte nödvändigtvis. Det här verktyget använder JavaScript-motorn. Grundläggande syntax är gemensam, men funktioner som possessiva kvantifierare, atomgrupper, inline-flagg som (?i) och vissa escape-sekvenser finns bara i andra varianter, och några beter sig annorlunda. Testa alltid i målspråket.

Varför hittas bara en träff?

Flaggan g (global) är avstängd. Utan den returnerar JavaScript bara den första träffen. Kryssa i g för att hitta alla.

Ska jag skriva snedstrecken runt mönstret?

Nej. Ange bara mönstret, till exempel \d+ i stället för /\d+/g, och välj flaggor med kryssrutorna. JavaScript-literalformen visas nedanför resultaten för kopiering till kod.

Varför blev sidan långsam med mitt mönster?

Nästlade kvantifierare som (a+)+ eller (.*)* kan tvinga motorn att pröva ett exponentiellt antal vägar när ingen träff finns. Gör mönstret mer specifikt, till exempel genom att ersätta .* med [^,]*, eller använd ankare. Testaren begränsar texten till 100 000 tecken för att minska påverkan.

Integritet

Ditt mönster och din text behandlas endast i din webbläsare av dess JavaScript-motor. Ingenting laddas upp, lagras eller ingår i analys.