Skip to content

Regex-tokens forklaret

Hvert grundlæggende regex-token: ankre, tegnklasser, kvantorer, grupper og flags. Hvad hvert enkelt betyder, med en konkret match. Det hurtige opslag, der hører til Regex Tester-værktøjet.

Regex-tokens sættes sammen: stable et anker, en tegnklasse og en kvantor for at bygge et mønster. ^ fastlåser en start, \d matcher et ciffer, og {2,4} sætter, hvor mange gange. Kombinér dem som ^\d{2,4}$ for at matche en hel streng på to til fire cifre. Læs et mønster fra venstre mod højre, ét token ad gangen. Det tilhørende Regex Tester-værktøj lader dig afprøve enhver af disse tokens live mod din egen tekst.

Referencetabel · 55 posterÅbn værktøjet regex-tester →
55 of 55 rows
Ankre
Matcher positionen i starten af strengen — eller starten af en linje med m-flaget.^He → He
Matcher positionen i slutningen af strengen — eller slutningen af en linje med m-flaget.lo$ → lo
Matcher en ordgrænse: positionen mellem et ordtegn og et ikke-ordtegn.\bcat\b → cat
Matcher en ikke-ordgrænse: positionen mellem to ordtegn eller to ikke-ordtegn.\Bar → ar
Tegnklasser
Matcher ethvert enkelt tegn undtagen et linjeskift, medmindre s-flaget er slået til.a.c → abc
Matcher ethvert ciffer, 0 til og med 9.\d → 7
Matcher ethvert tegn, der ikke er et ciffer.\D → a
Matcher ethvert ordtegn: et bogstav, et ciffer eller en understregning.\w → _
Matcher ethvert tegn, der ikke er et ordtegn.\W → !
Matcher ethvert blanktegn: et mellemrum, et tabulatortegn eller et linjeskift.a\sb → a b
Matcher ethvert tegn, der ikke er et blanktegn.\S → a
Matcher ethvert af de tegn, der er angivet inde i de kantede klammer.[aeiou] → e
Matcher ethvert tegn, der ikke er et af dem, der er angivet inde i klammerne.[^aeiou] → s
Matcher ethvert enkelt tegn i det angivne interval, fra a til z.[a-z] → m
Matcher ethvert enkelt tegn inklusive et linjeskift — den gængse skrivemåde for et punktum, der også dækker linjeskift.[\s\S] → \n
Matcher ethvert unicode-bogstav fra ethvert skriftsprog, når u-flaget er slået til.\p{L} → é
Matcher ethvert unicode-taltegn fra ethvert skriftsprog, når u-flaget er slået til.\p{N} → ٣
Escape: matcher præcis ét line feed-tegn.\n → line feed
Escape: matcher præcis ét tabulatortegn.\t → tab
Escape: matcher præcis ét carriage return-tegn.\r → carriage return
Matcher det enkelttegn, der har den angivne tocifrede hex-kode.\x41 → A
Matcher det enkelttegn, der har det angivne hex-kodepunkt, når u-flaget er slået til.\u{1F600} → 😀
Snit af tegnklasser med v-flaget: matcher tegn, der er i begge sæt på samme tid.[[a-z]&&[^aeiou]] → t
Kvantorer
Matcher det forrige token nul eller flere gange.ab* → abbb
Matcher det forrige token én eller flere gange.a+ → aaa
Matcher det forrige token nul eller én gang og gør det dermed valgfrit.colou?r → color
Matcher det forrige token præcis n gange.a{3} → aaa
Matcher det forrige token n eller flere gange.a{2,} → aaaa
Matcher det forrige token mellem n og m gange, begge grænser inkluderet.a{2,4} → aaa
Doven kvantor: matcher det forrige token nul eller flere gange og tager så lidt som muligt.<.*?> on <a><b> → <a>
Doven kvantor: matcher det forrige token én eller flere gange og tager så lidt som muligt.\d+? on 123 → 1
Doven kvantor: matcher det forrige token nul eller én gang og foretrækker nul.ab?? on ab → a
Doven kvantor: matcher det forrige token mellem n og m gange og tager så lidt som muligt.a{1,3}? on aaa → a
Possessiv kvantor (PCRE): matcher det forrige token nul eller flere gange, beholder det og backtracker aldrig for at prøve andre opdelinger..*+a on aaa → no match
Grupper & alternation
En fangende gruppe: matcher sekvensen og gemmer den til backreferencer.(ab)+ → abab
En ikke-fangende gruppe: matcher sekvensen uden at gemme den.(?:ab)+ → abab
Positivt lookahead: matcher, hvis de næste tegn er abc, uden at forbruge dem.a(?=b) → a
Negativt lookahead: matcher, hvis de næste tegn ikke er abc, uden at forbruge dem.a(?!b) → a
Backreference: matcher præcis den tekst, som den fangende gruppe 1 fangede.(a)\1 → aa
Alternation: matcher enten udtrykket før lodstreget eller det efter.cat|dog → dog
En navngiven fangende gruppe: matcher sekvensen og gemmer den under det angivne navn.(?<year>\d{4}) → year = 2026
Positivt lookbehind: matcher, hvis de foregående tegn er abc, uden at forbruge dem.(?<=a)b → b
Negativt lookbehind: matcher, hvis de foregående tegn ikke er abc, uden at forbruge dem.(?<!a)b → b
Navngiven backreference: matcher præcis den tekst, som den navngivne gruppe fangede.(?<w>\w+) \k<w> → the the
Atomisk gruppe (PCRE): matcher sekvensen én gang og backtracker aldrig ind i den.(?>a+)ab on aab → no match
Branch reset (PCRE): alternation, hvor hver gren genbruger de samme gruppenumre.(?|(cat)|(dog)) → \1 = dog
Flags
Globalt flag: finder hver match i strengen, ikke kun den første./a/g on aaa → a, a, a
Flag for uafhængighed af store og små bogstaver: ignorerer bogstavernes store eller små form ved matching./Hi/i → hi
Multilinje-flag: behandler ^ og $ som starten og slutningen af hver linje./^a/m matches at the start of each line
Dotall-flag: lader punktummet også matche et linjeskift./a.b/s → a\nb
Unicode-flag: behandler et mønster og dets input som unicode-kodepunkter./\u{1F600}/u → 😀
Sticky-flag: matcher kun på den præcise position, som lastIndex angiver./ab/y matches only at lastIndex
Indeks-flag: føjer start- og slutpositionen for hver match til resultatet./b/d on abc → indices [1, 2]
Unicode-sæt-flag: et strengere u, der også tillader sætoperationer inde i en tegnklasse./[a-z&&[^aeiou]]/v → t
Udvidet flag (PCRE): ignorerer ikke-escapet blanktegn og #-kommentarer inde i mønstret./a b/x → ab