Regex-tester
Skriv inn et mønster og en tekst å teste det på, så blir hvert treff uthevet mens du skriver.
Eksempler
Bruk $1 eller $<name> for grupper, $& for hele treffet og $$ for et dollartegn.
Vanlige tegn
- .
- hvilket som helst tegn utenom linjeskift
- \d
- et siffer 0–9
- \w
- en bokstav a–z, et siffer eller understrek
- \s
- mellomrom, tabulator eller linjeskift
- \D \W \S
- det motsatte av \d, \w og \s
- \b
- grense mellom et ordtegn og et annet tegn
- ^
- starten av teksten, eller av linjen med m
- $
- slutten av teksten, eller av linjen med m
- [abc] [a-z]
- ett av tegnene, eller et tegn i intervallet
- [^abc]
- ingen av tegnene
- a|b
- a eller b
- (…)
- fangende gruppe
- (?:…)
- ikke-fangende gruppe
- (?<name>…)
- navngitt gruppe
- \1 \k<name>
- samme tekst som gruppe 1 eller gruppen som heter name
- *
- null eller flere ganger
- +
- én eller flere ganger
- ?
- null eller én gang
- {3} {2,5} {2,}
- nøyaktig 3, 2 til 5 eller minst 2 ganger
- *? +? ??
- så få ganger som mulig
- (?=…)
- fulgt av
- (?!…)
- ikke fulgt av
- (?<=…) (?<!…)
- etter, ikke etter
- \p{L}
- en bokstav i hvilket som helst skriftsystem (krever u eller v)
Slik fungerer det
Et regulært uttrykk er et mønster som beskriver tekst. \d+ betyr ett eller flere sifre, [a-z] en bokstav fra a til z og ^ starten av teksten. Mønsteret prøves mot teksten fra venstre mot høyre, og hvert sted der det passer, er et treff.
Testeren bruker nettleserens egen motor, altså den varianten av regulære uttrykk som ECMAScript-standarden for JavaScript definerer. Den skiller seg fra PCRE, Python og .NET på noen punkter: Det finnes for eksempel ingen possessive kvantifikatorer eller atomiske grupper, og lookbehind kan ha hvilken som helst lengde.
Flagg endrer hvordan mønsteret leses. g finner alle treff i stedet for bare det første, i ser bort fra forskjellen mellom store og små bokstaver, m får ^ og $ til å gjelde hver linje, og s lar punktum treffe linjeskift. u leser teksten som Unicode-tegn i stedet for UTF-16-enheter, og v er en strengere versjon av u fra ECMAScript 2024 med mengdeoperasjoner i tegnklasser. y krever at hvert treff starter nøyaktig der det forrige sluttet, og d lagrer posisjonene til gruppene.
Parenteser fanger det de traff, og nummereres etter den åpnende parentesen, fra venstre. (?<name>…) gir en gruppe et navn, og (?:…) grupperer uten å fange. I erstatningen står $1 for gruppe 1, $<name> for en navngitt gruppe, $& for hele treffet og $$ for et dollartegn. Uten flagget g erstattes bare det første treffet.
Noen mønstre tar ekstremt lang tid, som (a+)+$ mot en lang rekke a fulgt av et annet tegn. Motoren prøver da kombinasjoner der antallet vokser eksponentielt med tekstens lengde, såkalt katastrofal backtracking. Her kjører søket i en egen tråd som stoppes etter to sekunder, slik at siden ikke fryser. I et program på en server kan det samme mønsteret bli en sikkerhetsrisiko (ReDoS).
Posisjoner telles i UTF-16-enheter, som i JavaScript, så en emoji teller som to. Et tomt treff, som ^ eller \b, markeres med en tynn strek. Teksten din forlater aldri nettleseren.