Skip to content

Tokeny regulárních výrazů vysvětleny

Každý základní token regexu: kotvy, třídy znaků, kvantifikátory, skupiny a flagy. Co který znamená, s konkrétní shodou. Rychlá referenční tabulka doprovázející nástroj Regex Tester.

Tokeny regexu se skládají: spojte kotvu, třídu znaků a kvantifikátor a vznikne vzor. ^ ukotví začátek, \d odpovídá číslici a {2,4} určuje, kolikrát. Kombinace ^\d{2,4}$ odpovídá celému řetězci se dvěma až čtyřmi číslicemi. Čtěte vzor zleva doprava, po jednom tokenu. Doprovodný nástroj Regex Tester vám dovolí kterýkoli z těchto tokenů vyzkoušet živě na vlastním textu.

Referenční tabulka · 55 položekOtevřít nástroj regex-tester →
55 of 55 rows
Kotvy
Odpovídá pozici na začátku řetězce, nebo začátku řádku s flagem m.^He → He
Odpovídá pozici na konci řetězce, nebo konci řádku s flagem m.lo$ → lo
Odpovídá hranici slova: pozici mezi znakem slova a znakem, který jím není.\bcat\b → cat
Odpovídá ne-hranici slova: pozici mezi dvěma znaky slova, nebo mezi dvěma znaky, které jimi nejsou.\Bar → ar
Třídy znaků
Odpovídá jakémukoli jednomu znaku kromě zalomení řádku, pokud není nastaven flag s.a.c → abc
Odpovídá jakékoli číslici, 0 až 9.\d → 7
Odpovídá jakémukoli znaku, který není číslice.\D → a
Odpovídá jakémukoli znaku slova: písmenu, číslici nebo podtržítku.\w → _
Odpovídá jakémukoli znaku, který není znakem slova.\W → !
Odpovídá jakémukoli bílému znaku: mezeře, tabulátoru nebo zalomení řádku.a\sb → a b
Odpovídá jakémukoli znaku, který není bílý znak.\S → a
Odpovídá kterémukoli ze znaků uvedených v hranatých závorkách.[aeiou] → e
Odpovídá jakémukoli znaku, který není jedním z těch uvedených v závorkách.[^aeiou] → s
Odpovídá jakémukoli jednotlivému znaku v daném rozsahu, od a do z.[a-z] → m
Odpovídá jakémukoli jednomu znaku včetně zalomení řádku; obvyklý zápis pro tečku, která sahá přes řádky.[\s\S] → \n
Odpovídá jakémukoli unicodovému písmenu z jakéhokoli písma, pokud je nastaven flag u.\p{L} → é
Odpovídá jakémukoli unicodovému číselnému znaku z jakéhokoli písma, pokud je nastaven flag u.\p{N} → ٣
Escape: odpovídá jednomu znaku zalomení řádku (line feed).\n → line feed
Escape: odpovídá jednomu tabulátoru.\t → tab
Escape: odpovídá jednomu znaku návratu vozíku (carriage return).\r → carriage return
Odpovídá jedinému znaku s daným dvouciferným hexadecimálním kódem.\x41 → A
Odpovídá jedinému znaku s daným hexadecimálním kódovým bodem, pokud je nastaven flag u.\u{1F600} → 😀
Průnik tříd s flagem v: odpovídá znakům, které jsou v obou množinách zároveň.[[a-z]&&[^aeiou]] → t
Kvantifikátory
Odpovídá předchozímu tokenu nula i vícekrát.ab* → abbb
Odpovídá předchozímu tokenu jednou i vícekrát.a+ → aaa
Odpovídá předchozímu tokenu nula nebo jednou, čímž ho činí volitelným.colou?r → color
Odpovídá předchozímu tokenu přesně n-krát.a{3} → aaa
Odpovídá předchozímu tokenu n i vícekrát.a{2,} → aaaa
Odpovídá předchozímu tokenu n-krát až m-krát, včetně obou mezí.a{2,4} → aaa
Líný kvantifikátor: odpovídá předchozímu tokenu nula i vícekrát a bere přitom co nejméně.<.*?> on <a><b> → <a>
Líný kvantifikátor: odpovídá předchozímu tokenu jednou i vícekrát a bere přitom co nejméně.\d+? on 123 → 1
Líný kvantifikátor: odpovídá předchozímu tokenu nula nebo jednou, s předností nuly.ab?? on ab → a
Líný kvantifikátor: odpovídá předchozímu tokenu n-krát až m-krát a bere přitom co nejméně.a{1,3}? on aaa → a
Possessivní kvantifikátor (PCRE): odpovídá předchozímu tokenu nula i vícekrát, výsledek si podrží a nikdy se nevrací zkoušet jiné rozdělení..*+a on aaa → no match
Skupiny a alternace
Zachycující skupina: odpovídá sekvenci a zapamatuje si ji pro zpětné odkazy.(ab)+ → abab
Nezachycující skupina: odpovídá sekvenci, aniž by si ji zapamatovala.(?:ab)+ → abab
Pozitivní lookahead: odpovídá, pokud následující znaky jsou abc, aniž by je spotřeboval.a(?=b) → a
Negativní lookahead: odpovídá, pokud následující znaky nejsou abc, aniž by je spotřeboval.a(?!b) → a
Zpětný odkaz: odpovídá přesně tomu textu, který zachytila skupina 1.(a)\1 → aa
Alternace: odpovídá buď výrazu před svislítkem, nebo tomu za ním.cat|dog → dog
Pojmenovaná zachycující skupina: odpovídá sekvenci a zapamatuje si ji pod daným jménem.(?<year>\d{4}) → year = 2026
Pozitivní lookbehind: odpovídá, pokud předchozí znaky jsou abc, aniž by je spotřeboval.(?<=a)b → b
Negativní lookbehind: odpovídá, pokud předchozí znaky nejsou abc, aniž by je spotřeboval.(?<!a)b → b
Pojmenovaný zpětný odkaz: odpovídá přesně tomu textu, který zachytila pojmenovaná skupina.(?<w>\w+) \k<w> → the the
Atomická skupina (PCRE): odpovídá sekvenci jednou a už se do ní nikdy nevrací.(?>a+)ab on aab → no match
Branch reset (PCRE): alternace, kde každá větev používá stejná čísla skupin.(?|(cat)|(dog)) → \1 = dog
Flagy
Globální flag: najde všechny shody v řetězci, ne jen první./a/g on aaa → a, a, a
Flag necitlivosti na velikost písmen: při porovnávání ignoruje velká a malá písmena./Hi/i → hi
Víceřádkový flag: bere ^ a $ jako začátek a konec každého řádku./^a/m matches at the start of each line
Dotall flag: dovolí tečce odpovídat i zalomení řádku./a.b/s → a\nb
Unicode flag: bere vzor i vstup jako unicodové kódové body./\u{1F600}/u → 😀
Sticky flag: odpovídá pouze na přesné pozici určené lastIndex./ab/y matches only at lastIndex
Flag indexů: k výsledku přidává začáteční a koncovou pozici každé shody./b/d on abc → indices [1, 2]
Flag unicode množin: přísnější u, které navíc umožňuje operace s množinami uvnitř třídy./[a-z&&[^aeiou]]/v → t
Rozšířený flag (PCRE): ignoruje neescapované bílé znaky a #-komentáře uvnitř vzoru./a b/x → ab