Skip to content

Tokeny regex wyjaśnione

Każdy podstawowy token regex: kotwice, klasy znaków, kwantyfikatory, grupy i flagi. Co każdy z nich znaczy, z konkretnym dopasowaniem. Szybka ściąga towarzysząca narzędziu Regex Tester.

Tokeny regex łączą się w wzorce: ustaw kotwicę, klasę znaku i kwantyfikator, aby zbudować wzorzec. ^ przypina do początku, \d dopasowuje cyfrę, a {2,4} określa liczbę powtórzeń. Połącz je w ^\d{2,4}$, aby dopasować cały ciąg od dwóch do czterech cyfr. Czytaj wzorzec od lewej do prawej, po jednym tokenie. Narzędzie Regex Tester pozwala wypróbować każdy z tych tokenów na żywo na własnym tekście.

Tabela referencyjna · 55 wpisyOtwórz narzędzie regex-tester →
55 of 55 rows
Kotwice
Dopasowuje pozycję na początku ciągu albo początek linii z flagą m.^He → He
Dopasowuje pozycję na końcu ciągu albo koniec linii z flagą m.lo$ → lo
Dopasowuje granicę słowa, pozycję między znakiem słowa a znakiem niebędącym znakiem słowa.\bcat\b → cat
Dopasowuje granicę nie-słowową, pozycję między dwoma znakami słowa albo dwoma znakami spoza słowa.\Bar → ar
Klasy znaków
Dopasowuje dowolny pojedynczy znak oprócz łamania linii, chyba że ustawiona jest flaga s.a.c → abc
Dopasowuje dowolną cyfrę, od 0 do 9.\d → 7
Dopasowuje dowolny znak, który nie jest cyfrą.\D → a
Dopasowuje dowolny znak słowa: literę, cyfrę lub podkreślnik.\w → _
Dopasowuje dowolny znak, który nie jest znakiem słowa.\W → !
Dopasowuje dowolny biały znak: spację, tabulator lub łamanie linii.a\sb → a b
Dopasowuje dowolny znak, który nie jest białym znakiem.\S → a
Dopasowuje dowolny ze znaków podanych wewnątrz nawiasów kwadratowych.[aeiou] → e
Dopasowuje dowolny znak, którego nie ma na liście wewnątrz nawiasów kwadratowych.[^aeiou] → s
Dopasowuje dowolny pojedynczy znak z podanego zakresu, od a do z.[a-z] → m
Dopasowuje dowolny pojedynczy znak, łącznie z łamaniem linii — standardowy idiom zastępujący kropkę obejmującą także nowe linie.[\s\S] → \n
Dopasowuje dowolną literę unicode z dowolnego pisma, gdy ustawiona jest flaga u.\p{L} → é
Dopasowuje dowolny znak liczbowy unicode z dowolnego pisma, gdy ustawiona jest flaga u.\p{N} → ٣
Sekwencja ucieczki: dopasowuje pojedynczy znak nowej linii (line feed).\n → line feed
Sekwencja ucieczki: dopasowuje pojedynczy znak tabulacji.\t → tab
Sekwencja ucieczki: dopasowuje pojedynczy znak powrotu karetki (carriage return).\r → carriage return
Dopasowuje pojedynczy znak o podanym dwucyfrowym kodzie szesnastkowym.\x41 → A
Dopasowuje pojedynczy znak o podanym szesnastkowym punkcie kodowym, gdy ustawiona jest flaga u.\u{1F600} → 😀
Część wspólna klas, z flagą v: dopasowuje znaki, które należą do obu zbiorów naraz.[[a-z]&&[^aeiou]] → t
Kwantyfikatory
Dopasowuje poprzedni token zero lub więcej razy.ab* → abbb
Dopasowuje poprzedni token jeden lub więcej razy.a+ → aaa
Dopasowuje poprzedni token zero lub jeden raz, czyniąc go opcjonalnym.colou?r → color
Dopasowuje poprzedni token dokładnie n razy.a{3} → aaa
Dopasowuje poprzedni token n lub więcej razy.a{2,} → aaaa
Dopasowuje poprzedni token od n do m razy włącznie.a{2,4} → aaa
Kwantyfikator leniwy: dopasowuje poprzedni token zero lub więcej razy, biorąc tak mało, jak to możliwe.<.*?> on <a><b> → <a>
Kwantyfikator leniwy: dopasowuje poprzedni token jeden lub więcej razy, biorąc tak mało, jak to możliwe.\d+? on 123 → 1
Kwantyfikator leniwy: dopasowuje poprzedni token zero lub jeden raz, preferując zero.ab?? on ab → a
Kwantyfikator leniwy: dopasowuje poprzedni token od n do m razy, biorąc tak mało, jak to możliwe.a{1,3}? on aaa → a
Kwantyfikator possessive (PCRE): dopasowuje poprzedni token zero lub więcej razy i go zatrzymuje, nigdy nie cofając się, by próbować innych podziałów..*+a on aaa → no match
Grupy i alternacja
Grupa przechwytująca: dopasowuje sekwencję i zapamiętuje ją dla backreferencji.(ab)+ → abab
Grupa nieprzechwytująca: dopasowuje sekwencję bez zapamiętywania jej.(?:ab)+ → abab
Pozytywny lookahead: dopasowuje, gdy następne znaki to abc, bez konsumowania ich.a(?=b) → a
Negatywny lookahead: dopasowuje, gdy następne znaki to nie abc, bez konsumowania ich.a(?!b) → a
Backreferencja: dopasowuje dokładnie ten tekst, który przechwyciła grupa 1.(a)\1 → aa
Alternacja: dopasowuje wyrażenie przed pionową kreską albo to po niej.cat|dog → dog
Nazwana grupa przechwytująca: dopasowuje sekwencję i zapamiętuje ją pod podaną nazwą.(?<year>\d{4}) → year = 2026
Pozytywny lookbehind: dopasowuje, gdy poprzedzające znaki to abc, bez konsumowania ich.(?<=a)b → b
Negatywny lookbehind: dopasowuje, gdy poprzedzające znaki to nie abc, bez konsumowania ich.(?<!a)b → b
Nazwana backreferencja: dopasowuje dokładnie tekst przechwycony przez nazwaną grupę.(?<w>\w+) \k<w> → the the
Grupa atomowa (PCRE): dopasowuje sekwencję raz i nigdy się w nią nie cofa.(?>a+)ab on aab → no match
Branch reset (PCRE): alternacja, w której każda gałąź ponownie używa tych samych numerów grup.(?|(cat)|(dog)) → \1 = dog
Flagi
Flaga globalna: znajduje wszystkie dopasowania w ciągu, nie tylko pierwsze./a/g on aaa → a, a, a
Flaga ignorowania wielkości liter: nie rozróżniaj wielkich i małych liter przy dopasowywaniu./Hi/i → hi
Flaga multiline: traktuje ^ i $ jako początek i koniec każdej linii./^a/m matches at the start of each line
Flaga dotall: pozwala kropce dopasować także łamanie linii./a.b/s → a\nb
Flaga unicode: traktuje wzorzec i wejście jako punkty kodowe unicode./\u{1F600}/u → 😀
Flaga sticky: dopasowuje tylko na dokładnej pozycji wskazanej przez lastIndex./ab/y matches only at lastIndex
Flaga indeksów: dodaje do wyniku pozycję początkową i końcową każdego dopasowania./b/d on abc → indices [1, 2]
Flaga unicode sets: ściślejsza wersja u, która pozwala też na operacje na zbiorach wewnątrz klasy./[a-z&&[^aeiou]]/v → t
Flaga rozszerzona (PCRE): ignoruje nieescapowane białe znaki i komentarze # wewnątrz wzorca./a b/x → ab