tigtools

Regex-tester

Skriv inn et mønster og litt tekst for å se alle treff uthevet, med posisjon og fangstgrupper. Bruker nettleserens JavaScript-regexmotor.

Kjører i nettleseren din Ingen registrering

Flagg

Bruk $1, $2 … for nummererte grupper, $<name> for navngitte grupper, $& for hele treffet og $$ for dollartegn.

Slik bruker du det

  1. Skriv et regulært uttrykk i Mønster-feltet, uten skråstrekene rundt.
  2. Kryss av for flaggene du trenger. g (global) finner alle treff i stedet for bare det første.
  3. Lim inn teksten du vil søke i. Treff utheves, og hvert treff vises med indeks og fangstgrupper.
  4. 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.