tigtools

Regex Tester

Indtast et mønster og noget tekst for at se hvert match fremhævet med position og fangstgrupper. Bruger din browsers JavaScript-regex-motor.

Kører i din browser Ingen tilmelding

Flag

Brug $1, $2 … til nummererede grupper, $<name> til navngivne grupper, $& til hele match og $$ til et dollartegn.

Sådan bruger du det

  1. Skriv et regulært udtryk i feltet Mønster uden de omgivende skråstreger.
  2. Sæt kryds ved de flag, du har brug for. g (global) finder alle matches i stedet for kun det første.
  3. Indsæt den tekst, der skal søges i. Matches fremhæves, og hver enkelt vises med sit indeks og sine fangstgrupper.
  4. Du kan eventuelt indtaste en erstatning som $2-$1 for at få vist resultatet af String.replace.

Sådan fungerer det

Testeren kører dit mønster med browserens indbyggede RegExp-objekt, så resultaterne er præcis, hvad JavaScript-kode (ECMAScript) i den pågældende browser ville producere. Andre sprog bruger andre regex-dialekter: PCRE (PHP), Pythons re-modul, Java og .NET understøtter funktioner, som JavaScript ikke har, såsom possessive kvantifikatorer (a++), atomiske grupper ((?>…)), inline-modifikatorer som (?i) og rekursion, og de adskiller sig i detaljer som ankrene \A og \Z. Test et mønster i det sprog, det skal bruges i, før du stoler på det der. Lookbehind ((?<=…)), navngivne grupper ((?<name>…)) og Unicode property escapes (\p{L} med u-flaget) virker i alle aktuelle browsere.

Uden g- eller y-flaget findes kun det første match, ligesom med RegExp.exec. Match af længde nul, f.eks. af ^ eller \b, vises, men fremhæves ikke; efter et sådant går søgningen ét tegn frem (ét kodepunkt med u-flaget), ligesom String.matchAll gør. Fangstgrupper vises med nummer og, hvor de er defineret, med navn; en gruppe, der ikke deltog i matchet, markeres som uden værdi, hvilket er forskelligt fra et tomt match.

Nogle mønstre, f.eks. (a+)+$ på en lang linje uden match, tager eksponentiel tid at fejle (katastrofal backtracking). For at mindske risikoen starter matchingen et øjeblik efter, at du holder op med at skrive, der søges kun i de første 100.000 tegn af teksten, og der indsamles højst 1.000 match. Et patologisk mønster kan stadig gøre fanen uresponsiv i et stykke tid; hvis det sker, så forenkl mønsteret eller forkort teksten.

Eksempler

Udtræk af datoer

Mønsteret (\d{4})-(\d{2})-(\d{2}) med g-flaget på “Due 2026-03-15, paid 2026-04-02” finder to match. Gruppe 1 er årstallet; erstatningen $3.$2.$1 laver teksten om til “Due 15.03.2026, paid 02.04.2026”.

Navngivne grupper til læsbar kode

(?<key>\w+)=(?<value>[^&]*) på query-strengen a=1&b=two lister key og value for hvert par, hvilket svarer til det, match.groups.key og match.groups.value returnerer i JavaScript.

Case-insensitiv søgning på tværs af linjer

^error:.* med flagene g, i og m matcher hver linje i en log, der starter med Error:, ERROR: eller error:, fordi m får ^ til at matche i starten af hver linje.

Ofte stillede spørgsmål

Virker mit regex på samme måde i Python, PHP eller Java?

Ikke nødvendigvis. Dette værktøj bruger JavaScript-motoren. Grundlæggende syntaks er fælles, men funktioner som possessive kvantifikatorer, atomare grupper, inline-flags som (?i) og visse escape-sekvenser findes kun i andre varianter, og nogle få opfører sig anderledes. Test altid i målsproget.

Hvorfor bliver der kun fundet ét match?

Flaget g (global) er slået fra. Uden det returnerer JavaScript kun det første match. Sæt kryds ved g for at finde alle.

Skal jeg skrive skråstregerne rundt om mønsteret?

Nej. Indtast kun mønsteret, for eksempel \d+ i stedet for /\d+/g, og vælg flag med afkrydsningsfelterne. JavaScript-literalformen vises under resultaterne, så du kan kopiere den til kode.

Hvorfor blev siden langsom med mit mønster?

Indlejrede kvantifikatorer som (a+)+ eller (.*)* kan tvinge motoren til at afprøve et eksponentielt antal stier, når der ikke findes et match. Gør mønsteret mere specifikt, for eksempel ved at erstatte .* med [^,]*, eller brug ankre. Testeren begrænser teksten til 100.000 tegn for at mindske belastningen.

Privatliv

Dit mønster og din tekst behandles kun i din browser af dens JavaScript-motor. Intet uploades, gemmes eller indgår i analyse.