Sådan bruger du det
- Skriv et regulært udtryk i feltet Mønster uden de omgivende skråstreger.
- Sæt kryds ved de flag, du har brug for. g (global) finder alle matches i stedet for kun det første.
- Indsæt den tekst, der skal søges i. Matches fremhæves, og hver enkelt vises med sit indeks og sine fangstgrupper.
- 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.