Spring til indholdet
Quaestio

Regex-tester

Indtast et mønster og en tekst at teste det på, så bliver hvert match fremhævet, mens du skriver.

Flag

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)
Indlejr

Indlejr værktøjet på dit website

Kopiér koden, og indsæt den, hvor værktøjet skal vises, f.eks. i et blogindlæg eller på en skoleside. Det er gratis, boksen har ingen annoncer, og værktøjet regner i den besøgendes browser.

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.

Kilder

Sådan kontrolleres værktøjerne