Slik bruker du det
- Skriv et regulært uttrykk i Mønster-feltet, uten skråstrekene rundt.
- Kryss av for flaggene du trenger. g (global) finner alle treff i stedet for bare det første.
- Lim inn teksten du vil søke i. Treff utheves, og hvert treff vises med indeks og fangstgrupper.
- Du kan eventuelt skrive inn en erstatning, for eksempel $2-$1, for å forhåndsvise resultatet av String.replace.
Slik fungerer det
Testeren kjører mønsteret ditt med nettleserens innebygde RegExp-objekt, så resultatene er nøyaktig det JavaScript (ECMAScript)-koden i den nettleseren ville produsert. Andre språk bruker andre regex-dialekter: PCRE (PHP), Pythons re-modul, Java og .NET støtter funksjoner JavaScript mangler, for eksempel possessive kvantorer (a++), atomiske grupper ((?>…)), inline-modifikatorer som (?i) og rekursjon, og de skiller seg i detaljer som \A- og \Z-ankere. Test et mønster i det aktuelle språket før du stoler på det der. Lookbehind ((?<=…)), navngitte grupper ((?<name>…)) og Unicode property escapes (\p{L} med u-flagget) fungerer i alle moderne nettlesere.
Uten g- eller y-flagget blir bare det første treffet funnet, som med RegExp.exec. Nullengdetreff, for eksempel for ^ eller \b, vises i listen, men utheves ikke; etter ett slikt treff flyttes søket én karakter frem (ett kodepunkt med u-flagget), slik String.matchAll gjør. Fangstgrupper vises med nummer og, der de er definert, med navn; en gruppe som ikke deltok i treffet, markeres som uten verdi, noe som er forskjellig fra et tomt treff.
Noen mønstre, for eksempel (a+)+$ på en lang linje uten treff, bruker eksponentiell tid på å mislykkes (katastrofal tilbakesporing). For å redusere risikoen starter matching et øyeblikk etter at du slutter å skrive, bare de første 100 000 tegnene i teksten søkes gjennom, og maksimalt 1 000 treff samles. Et patologisk mønster kan likevel gjøre fanen uresponsiv en stund; hvis det skjer, forenkle mønsteret eller forkort teksten.
Eksempler
Hente ut datoer
Mønsteret (\d{4})-(\d{2})-(\d{2}) med g-flagget på «Due 2026-03-15, paid 2026-04-02» finner to treff. Gruppe 1 er årstallet; erstatningen $3.$2.$1 gjør teksten om til «Due 15.03.2026, paid 02.04.2026».
Navngitte grupper for lesbar kode
(?<key>\w+)=(?<value>[^&]*) på spørrestrengen a=1&b=two viser key og value for hvert par, noe som samsvarer med det match.groups.key og match.groups.value returnerer i JavaScript.
Søk uten skille mellom store og små bokstaver på tvers av linjer
^error:.* med flaggene g, i og m treffer hver linje i en logg som starter med Error:, ERROR: eller error:, fordi m gjør at ^ treffer ved starten av hver linje.
Ofte stilte spørsmål
Vil regexen min fungere likt i Python, PHP eller Java?
Ikke nødvendigvis. Dette verktøyet bruker JavaScript-motoren. Grunnleggende syntaks er lik, men funksjoner som possessive kvantifikatorer, atomiske grupper, innebygde flagg som (?i) og enkelte escape-sekvenser finnes bare i andre dialekter, og noen få oppfører seg annerledes. Test alltid i målspråket.
Hvorfor blir det bare funnet ett treff?
Flagget g (global) er av. Uten det returnerer JavaScript bare første treff. Kryss av for g for å finne alle.
Skal jeg skrive skråstrekene rundt mønsteret?
Nei. Skriv bare mønsteret, for eksempel \d+ i stedet for /\d+/g, og velg flagg med avmerkingsboksene. JavaScript-literalformen vises under resultatene slik at du kan kopiere den inn i koden.
Hvorfor ble siden treg med mønsteret mitt?
Nøstede kvantifikatorer som (a+)+ eller (.*)* kan tvinge motoren til å prøve et eksponentielt antall veier når det ikke finnes noe treff. Gjør mønsteret mer spesifikt, for eksempel ved å erstatte .* med [^,]*, eller bruk ankere. Testeren begrenser teksten til 100 000 tegn for å redusere belastningen.
Personvern
Mønsteret og teksten din behandles bare i nettleseren din av JavaScript-motoren. Ingenting lastes opp, lagres eller tas med i analyse.