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: ! " # $ % & ' ( ) * + , \ -. / : ; < = > ? @ [ ] ^ _ ` { | } 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 ab i bc, 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 ab i abc, 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. |