Regex-tester
Indtast et mønster og en tekst at teste det på, så bliver hvert match fremhævet, mens du skriver.
Eksempler
Brug $1 eller $<name> for grupper, $& for hele matchet og $$ for et dollartegn.
Almindelige tegn
- .
- et hvilket som helst tegn undtagen linjeskift
- \d
- et ciffer 0–9
- \w
- et bogstav a–z, et ciffer eller en understreg
- \s
- mellemrum, tabulator eller linjeskift
- \D \W \S
- det modsatte af \d, \w og \s
- \b
- grænse mellem et ordtegn og et andet tegn
- ^
- begyndelsen af teksten, eller af linjen med m
- $
- slutningen af teksten, eller af linjen med m
- [abc] [a-z]
- et af tegnene, eller et tegn i intervallet
- [^abc]
- ingen af tegnene
- a|b
- a eller b
- (…)
- fangende gruppe
- (?:…)
- ikke-fangende gruppe
- (?<name>…)
- navngiven gruppe
- \1 \k<name>
- samme tekst som gruppe 1 eller gruppen med navnet name
- *
- nul eller flere gange
- +
- en eller flere gange
- ?
- nul eller én gang
- {3} {2,5} {2,}
- præcis 3, 2 til 5 eller mindst 2 gange
- *? +? ??
- så få gange som muligt
- (?=…)
- efterfulgt af
- (?!…)
- ikke efterfulgt af
- (?<=…) (?<!…)
- forudgået af, ikke forudgået af
- \p{L}
- et bogstav i et hvilket som helst skriftsystem (kræver u eller v)
Sådan virker det
Et regulært udtryk er et mønster, der beskriver tekst. \d+ betyder et eller flere cifre, [a-z] et bogstav fra a til z og ^ begyndelsen af teksten. Mønsteret afprøves på teksten fra venstre mod højre, og hvert sted, hvor det passer, er et match.
Testeren bruger din browsers egen motor, altså den variant af regulære udtryk, som ECMAScript-standarden for JavaScript definerer. Den adskiller sig fra PCRE, Python og .NET på nogle punkter: Der findes for eksempel ingen possessive kvantifikatorer eller atomare grupper, og lookbehind må have en hvilken som helst længde.
Flag ændrer, hvordan mønsteret læses. g finder alle match i stedet for kun det første, i ser bort fra forskellen på store og små bogstaver, m får ^ og $ til at gælde hver linje, og s lader punktum matche linjeskift. u læser teksten som Unicode-tegn i stedet for UTF-16-enheder, og v er en strengere udgave af u fra ECMAScript 2024 med mængdeoperationer i tegnklasser. y kræver, at hvert match begynder præcis der, hvor det forrige sluttede, og d gemmer gruppernes positioner.
Parenteser fanger det, de matchede, og nummereres efter deres åbnende parentes, fra venstre. (?<name>…) giver en gruppe et navn, og (?:…) grupperer uden at fange. I erstatningen står $1 for gruppe 1, $<name> for en navngiven gruppe, $& for hele matchet og $$ for et dollartegn. Uden flaget g erstattes kun det første match.
Nogle mønstre tager ekstremt lang tid, som (a+)+$ mod en lang række a efterfulgt af et andet tegn. Motoren afprøver så kombinationer, hvis antal vokser eksponentielt med tekstens længde, såkaldt katastrofal backtracking. Her kører søgningen i en separat tråd, der stoppes efter to sekunder, så siden ikke fryser. I et program på en server kan det samme mønster blive en sikkerhedsrisiko (ReDoS).
Positioner tælles i UTF-16-enheder som i JavaScript, så en emoji tæller som to. Et tomt match, som ^ eller \b, markeres med en tynd streg. Din tekst forlader aldrig din browser.