Wyrażenia regularne (RegEx)

Wyrażenia regularne to specjalny sposób opisywania szukanego tekstu, w którym niektóre znaki (metaznaki) posiadają inną funkcjonalność, niż oznaczanie symbolu. Wyrażenia regularne wykorzystywane są przez przez funkcje wyszukujące fragmenty tekstu.

Metaznaki

.
kropka oznacza dowolny wyświetlany znak (czyli wszystkie opórcz białych znaków)
[zakres znaków]
nawiasy kwadratowe usciślają zakres możliwych znaków, np. [a-z0-9].
-
użyty w nawiasach kwadratowych pomiędzy dwoma znakami oznacza przedział znaków, nie trzeba poprzedzać go ukośnikiem (jeśli stoi przed nawiasem kwadratowym zamykającym, nie trzeba poprzedzać go ukośnikiem)
\
ukośnik służy do oznaczania metaznaków jako zwykłe znaki
(ciąg znaków)
nawiasy okrągłe grupują ciągi znaków. Ciągi te są zapamiętywane i mogą być potem zwrócone przez funkcje operujące na wyrażeniach regularnych.
^
"daszek" użyty na początku ciągu oznacza początek ciągu; użyty jako pierwszy w nawiasach kwadratowych oznacza „wszystkie oprócz” (jeśli stoi za innymi znakami, nie trzeba poprzedzać go ukośnikiem)
$
dolar oznacza koniec ciągu
|
alternatywa użyta w nawiasach okrągłych służy to oznaczenia alternatywy ciągów znaków
*
asteriks oznacza zero lub więcej wystąpień znaku/nawiasu przed nim
?
znak zapytania oznacza zero lub jeden poprzedzający znak/nawias
+
znak plus oznacza jeden lub więcej poprzedzających znaków/nawiasów
{m}
liczba w nawiasie klamrowym oznacza dokładnie „m” poprzedzających znaków
{m,}
liczba w nawiasie klamrowym z przecinkiem oznacza „m” lub więcej poprzedzających znaków
{m, n}
para liczb w nawiasie klamrowym oznacza przedział od „m” do „n” poprzedzających znaków

Klasy znakowe

Klasy znakowe są to grupy znaków, które należy umieszczać w nawiasach kwadratowych (zamiast wypisywania znaków lub przedziałów). Są to:

Oznaczenie Grupa znaków
\w Znaki wyrazów
\W Znaki inne niż wyrazów
\d Cyfry
\D Znaki inne niż cyfry
\s Białe znaki
\S Znaki inne niż białe znaki
[:alnum:] Znaki alfanumeryczne
[:alpha:] Litery
[:digit:] Cyfry

Budowa

Wyrażenie posiada następującą budowę: [separator]ciąg znaków[seperator][modyfikatory], gdzie:

Modyfikatory

Są to znaki globalnie zmieniające wyrażenie.

i (case insensitive)
wprowadza tryb nierozróżniania wielkości znaków
m (multiline)
Powoduje, że ^$ pasują do początku i końca każdej linii, a nie tylko całego ciągu.
u (UTF-8)
Bez tego modyfikatora u wielobajtowe znaki UTF-8 będą traktowane jako kilka znaków.

uzupełnic innymi modyfikatorami

Przykłady


Zmodyfikowano: 18.09.2006, 16:36