Składnia wyrażeń regularnych

Aby utworzyć wyrażenie regularne, należy posłużyć się określoną składnią, tzn. użyć znaków specjalnych i przestrzegać reguł tworzenia. Na przykład poniżej znajduje się proste wyrażenie regularne, które pasuje do każdego 10-cyfrowego numeru telefonu w formacie nnn-nnn-nnnn:

\d{3}-\d{3}-\d{4}

W poniższej tabeli opisano wybrane znaki specjalne używane najczęściej w wyrażeniach regularnych. Znaki te są kategoryzowane w następujący sposób:

Znaki Opis
Kotwice
^ (karetka) Odpowiada początkowi wiersza lub ciągu tekstowego wyszukiwanego przez wyrażenie regularne. Na przykład reguła przeszukująca treść wiersza tematu i zawierająca następujące wyrażenie regularne:

^abc

wykrywa wszystkie e-maile, których wiersz tematu zaczyna się od liter abc
$ (znak dolara) Odpowiada końcowi wiersza lub ciągu tekstowego wyszukiwanego przez wyrażenie regularne. Na przykład reguła przeszukująca treść wiersza tematu i zawierająca następujące wyrażenie regularne:

xyz$

wykrywa wszystkie e-maile, których wiersz tematu kończy się literami xyz
Metaznaki
. (kropka) Odpowiada dowolnemu znakowi oprócz znaku nowego wiersza.
| (kreska pionowa) Oznacza alternatywę – „lub”. Na przykład:

kot|pies odpowiada słowom kot lub pies
\ Wskazuje, że kolejny znak jest znakiem zwykłym, a nie specjalnym. Na przykład:

\. odpowiada kropce (znakowi kropki), a nie dowolnemu znakowi
Klasy znaków
[...] Odpowiada dowolnemu znakowi z zestawu znaków. Aby określić zakres znaków, należy użyć łącznika. Na przykład:

[123] odpowiada cyfrze 1, 2 lub 3

[a-f] odpowiada dowolnej literze od a do f

Uwaga: w wyrażeniach regularnych w zasadach zgodności treści jest rozróżniana wielkość liter.
[^...] Odpowiada dowolnemu znakowi spoza zestawu znaków. Na przykład:

[^a-f]odpowiada dowolnemu znakowi, który nie jest literą od a do f

Uwaga: w wyrażeniach regularnych w zasadach zgodności treści jest rozróżniana wielkość liter.
[:alnum:] Odpowiada znakom alfanumerycznym (literom lub cyfrom):

a-z, A-Z lub 0-9

Uwaga: ta klasa znaków w razie użycia w wyrażeniu regularnym wymaga ujęcia w dodatkowy nawias kwadratowy, na przykład [[:alnum:]].
[:alpha:] Odpowiada znakom alfabetu (literom):

a-z lub A-Z

Uwaga: ta klasa znaków w razie użycia w wyrażeniu regularnym wymaga ujęcia w dodatkowy nawias kwadratowy, na przykład [[:alpha:]].
[:digit:] Odpowiada cyfrom:

0-9

Uwaga: ta klasa znaków w razie użycia w wyrażeniu regularnym wymaga ujęcia w dodatkowy nawias kwadratowy, na przykład [[:digit:]].
[:graph:] Odpowiada widocznym znakom, tzn. wszelkim znakom oprócz spacji, znaków kontrolnych itp.

Uwaga: ta klasa znaków w razie użycia w wyrażeniu regularnym wymaga ujęcia w dodatkowy nawias kwadratowy, na przykład [[:graph:]].
[:punct:] Odpowiada znakom interpunkcyjnym i symbolom:

! " # $ % & ' ( ) &ast; + , \ -. / : ; < = > ? @ [ ] ^ _ ` { | }

Uwaga: ta klasa znaków w razie użycia w wyrażeniu regularnym wymaga ujęcia w dodatkowy nawias kwadratowy, na przykład [[:punct:]].
[:print:] Odpowiada widocznym znakom i spacjom.

Uwaga: ta klasa znaków w razie użycia w wyrażeniu regularnym wymaga ujęcia w dodatkowy nawias kwadratowy, na przykład [[:print:]].
[:space:] Odpowiada wszelkim znakom odstępów, w tym spacjom, znakom tabulacji i znakom podziału wiersza.

Uwaga: ta klasa znaków w razie użycia w wyrażeniu regularnym wymaga ujęcia w dodatkowy nawias kwadratowy, na przykład [[:space:]].
[:word:] Odpowiada wszelkim znakom wyrazowym, tzn. wszystkim literom, cyfrom i podkreślnikowi:

a-z, A-Z, 0-9 lub _

Uwaga: ta klasa znaków w razie użycia w wyrażeniu regularnym wymaga ujęcia w dodatkowy nawias kwadratowy, na przykład [[:word:]].
Skróty klas znaków
\w Odpowiada wszelkim znakom wyrazowym, tzn. wszystkim literom, cyfrom i podkreślnikowi:

a-z, A-Z, 0-9 lub _

Odpowiednik klasy [:word:]
\W Odpowiada wszelkim znakom niewyrazowym, tzn. wszystkim znakom, które nie są literami, cyframi ani podkreślnikiem.

Odpowiednik klasy [^[:word:]]
\s Odpowiada wszelkim znakom odstępów. Znaku tego można użyć na przykład do określenia spacji między dwoma słowami w wyrażeniu:

poradygiełdowe odpowiada wyrażeniu porady giełdowe

Odpowiednik klasy [:space:]
\S Odpowiada wszelkim znakom, które nie są znakami odstępów.

Odpowiednik wyrażenia [^[:space:]]
\d Odpowiada cyfrom od 0 do 9.

Odpowiednik klasy [:digit:]
\D Odpowiada wszelkim znakom, które nie są cyframi od 0 do 9.

Odpowiednik klasy [^[:digit:]]
Grupa
(...) Grupuje części wyrażenia. Grupowanie pozwala zastosować kwantyfikator wobec grupy lub utworzyć dopasowanie do klasy znaków przed grupą albo za nią.
Kwantyfikatory
{n} Odpowiada poprzedzającemu wyrażeniu występującemu dokładnie n razy. Na przykład:

[a-c]{2} dopowiada dowolnej literze od a do c tylko, jeśli wystąpią dwie takie litery pod rząd. Wyrażenie takie odpowiada więc ciągom znaków abbc, ale nie abc ani aabbc.
{n,m} Odpowiada poprzedzającemu wyrażeniu występującemu co najmniej n razy, a maksymalnie m razy. Na przykład:

[a-c]{2,4} odpowiada dowolnej literze od a do c, o ile litery występują co najmniej 2 razy, a maksymalnie 4 razy pod rząd. Wyrażenie takie odpowiada więc ciągom znaków ababc, ale nie aabbc.
? Wskazuje, że poprzedzający znak albo wyrażenie może być dopasowane 0 razy lub 1 raz. Odpowiednik zakresu {0,1}. Na przykład następujące wyrażenie regularne:

kolory?r

odpowiada słowu kolor lub kolory, bo znak ? wskazuje, że litera u jest opcjonalna.