Wiedza fundamentalna› 1. Wyrażenia regularne›Lekcja 1.1 FUND-01

Regex: literały i konkatenacja

Po tej lekcji wiesz, czym jest wzorzec, jak dopasowuje się zwykły tekst i jak z krótkich wzorców powstają dłuższe. To pierwszy klocek każdego wyrażenia regularnego.

~5 min czytania5 pojęć2 schematy5 pytańsprawdzone ze źródłami 3 lis 2026
Źródła (2)

W jednej minucie

Definicja

Wzorzec to zapis opisujący, jakich ciągów znaków szukasz w tekście.1

Ważne

Wzorzec z samych zwykłych znaków pasuje do tekstu, który ma te same znaki w tej samej kolejności. Dłuższy wzorzec powstaje przez ustawienie krótszych jeden za drugim.

Zapamiętaj

Szukasz dosłownie kropki? Napisz \., a nie ..

Co robi wyrażenie regularne

Wyrażenie regularne odpowiada na jedno pytanie: czy w tym tekście jest coś, co pasuje do mojego opisu?

Definicja

Wyrażenie regularne to mechanizm wybierania konkretnych ciągów znaków ze zbioru ciągów znaków.1

  1. Wzorzecopis szukanego
  2. Tekstprzeszukiwany ciąg
  3. Szukanieporównanie znaków
  4. Wynikpasuje albo nie
Definicja

Dopasowanie to ciąg znaków w tekście, który odpowiada ciągowi opisanemu przez wzorzec.1

grep korzysta z tego mechanizmu: wypisuje linie, w których znajdzie dopasowanie.2

Znak zwykły: litera pasuje do siebie

Najprostszy wzorzec to zwykły tekst. Każdy jego znak oznacza po prostu samego siebie.

Definicja

Znak zwykły to znak we wzorcu, który dopasowuje samego siebie, o ile nie jest znakiem specjalnym.1

WzorzecTekstWynik
kotkot na dachupasuje
kotkotletpasuje
kotKot na dachunie pasuje
kotpiesnie pasuje

Wzorzec pasuje do fragmentu tekstu, nie musi obejmować całej linii. Wyniki sprawdziliśmy poleceniem grep w wersji 3.11.

Wielkość liter się liczy, bo dopasowanie opiera się na kodzie znaku, a nie na jego wyglądzie.1 Dopiero opcja -i w grep każe ignorować różnice wielkości liter.2

Konkatenacja: wzorce jeden za drugim

Dłuższy wzorzec to krótsze wzorce ustawione obok siebie. Nie potrzebujesz do tego żadnego znaku łączącego.

Definicja

Konkatenacja to sklejenie wzorców jeden za drugim: pasuje tekst, w którym po fragmencie pasującym do pierwszego idzie fragment pasujący do drugiego.1

  1. kpasuje do k
  2. ozaraz potem o
  3. tzaraz potem t
  4. kotcały wzorzec
Przykład

Wzorzec kot to konkatenacja trzech wzorców: k, o i t. Pasuje do tekstu „kot”, bo po k stoi o, a po nim t.

Gdzie zaczyna się dopasowanie

Gdy tekst jest dłuższy od wzorca, ktoś musi wybrać miejsce, od którego dopasowanie się zaczyna.

Specyfikacja mówi, że szukanie rusza od początku tekstu i kończy się na pierwszym dopasowaniu, czyli tym, które zaczyna się najwcześniej.1

  1. Zacznij od pierwszego znaku: a nie pasuje do b, więc dopasowanie nie zaczyna się tutaj.
  2. Przesuń się o jeden znak: od drugiego znaku tekst to bc, więc wzorzec pasuje.
  3. Zatrzymaj się: dopasowanie to znaki 2–3. Drugie bc (znaki 5–6) zaczyna się później, więc nie jest pierwsze.
Z praktyki

To nasze uproszczenie. Opisuje wynik zgodny ze specyfikacją, a nie to, jak silnik jest zbudowany w środku.

Gdy znak przestaje być zwykły

Nie każdy znak dopasowuje sam siebie. Niektóre mają we wzorcu własne znaczenie, ale tylko w określonych miejscach.1

Trzy takie znaki to kropka ., nawias kwadratowy [ i ukośnik wsteczny \.1 Kropka pasuje do dowolnego znaku.1

Ukośnik wsteczny przed znakiem specjalnym zamienia go z powrotem w znak dosłowny.1

printf 'a.c\nabc\n' > u.txt
grep 'a.c' u.txt     # wypisze a.c oraz abc
grep 'a\.c' u.txt    # wypisze tylko a.c
Uwaga — kropka to nie zawsze kropka

W wzorcu a.c kropka pasuje do dowolnego znaku, więc łapiesz też abc. Żeby znaleźć samą kropkę, napisz a\.c.

Częste błędy

Trzy pomyłki zdarzają się najczęściej, gdy zaczynasz pisać wzorce.

BłądSkutekPoprawka
Szukasz kot, a w tekście jest Kotbrak dopasowaniaUżyj -i w grep
Wzorzec a.c zamiast a\.cpasuje też abcPoprzedź kropkę ukośnikiem wstecznym
Wzorzec bez cudzysłowu w powłoceryzyko błęduUjmij wzorzec w cudzysłów

Kolumna „Poprawka” to nasza rekomendacja, nie cytat ze specyfikacji.

Uwaga — wzorzec bez cudzysłowu

W powłoce wzorzec zwykle ujmujesz w cudzysłów, żeby powłoka nie zmieniła go przed przekazaniem do grep.2

Pytania sprawdzające

Czym różni się znak zwykły od znaku specjalnego we wzorcu?

Znak zwykły dopasowuje samego siebie. Znak specjalny, np. kropka, ma własne znaczenie i nie oznacza dosłownie siebie.

Czy wzorzec kot pasuje do tekstu „Kot na dachu”? Dlaczego?

Nie. Dopasowanie opiera się na kodzie znaku, więc K i k to różne znaki. Dopiero opcja -i w grep ignoruje wielkość liter.

Co znaczy, że wzorzec kot jest konkatenacją?

To trzy wzorce k, o i t ustawione jeden za drugim. Pasuje tekst, w którym te znaki idą w tej kolejności.

Dlaczego a.c pasuje do abc i jak to zmienić?

Kropka pasuje do dowolnego znaku, więc w środku może stać b. Żeby szukać dosłownej kropki, napisz a\.c.

Wzorzec bc pasuje do tekstu abcabc w dwóch miejscach. Które dopasowanie wybierze silnik?

To, które zaczyna się najwcześniej, czyli znaki 2–3.

Podsumowanie

  • Wyrażenie regularne wybiera z tekstu ciągi znaków opisane wzorcem.
  • Znak zwykły dopasowuje samego siebie, a wielkość liter ma znaczenie.
  • Konkatenacja to wzorce ustawione jeden za drugim.
  • Dopasowanie zaczyna się w najwcześniejszym możliwym miejscu tekstu.
  • Kropka, [ i \ są znakami specjalnymi; ukośnik wsteczny zamienia znak specjalny w dosłowny.
  • W powłoce wzorzec zwykle ujmujesz w cudzysłów.

Źródła

  1. Regular Expressions — The Open Group (POSIX.1-2017)sprawdzone 2026-11-03
  2. GNU Grep 3.12 — GNU Projectsprawdzone 2026-11-03