Przejdź do treści

Centrum Kształcenia Zawodowego i Ustawicznego w Mrągowie

MySQL i wyrażenia regularne

wtorek,

MySQL i wyrażenia regularne

Wyrażenia regularne (regular expressions, regex, regexp) są szeroko stosowane w informatyce. Są to wzorce, które opisują łańcuchy symboli. Zagadnienie to jest dość złożone. Serwer MySQL ma wbudowaną obsługę wyrażeń regularnych. Na potrzeby krótkiej powtórki do egzaminu z kwalifikacji E.14 zaprezentowano podstawowe przykłady.

W MySQL wyrażenia regularne obsługują następujące funkcje i operatory: REGEXP, REGEXP_INSTR(), REGEXP_LIKE(), REGEXP_REPLACE(), REGEXP_SUBSTR(), RLIKE. W przykładach ograniczono się do operatora REGEXP, w pozostałych konstrukcjach składnia wyrażeń regularnych jest identyczna. Operator REGEXP wyszukuje łańcuchy znaków pasujące do wyrażenia regularnego. Dopuszczalne jest stosowanie negacji – NOT REGEXP (niepasujące do wyrażenia).

Niektóre symbole

.jeden dowolny znak
*zero lub więcej dopasowań
+jedno lub wiecej dopasowań
^początek łańcucha znaków
$koniec łańcucha znaków
|alternatywa, np. a|b oznacza a lub b
[:klasa:]klasa znaków, np. [:alnum:] to znaki alfanumeryczne, więcej opcji to: alnum (znaki alfanumeryczne), alpha (litery alfabetu), blank (białe znaki), cntrl (znaki kontrolne), digit (cyfry), graph (znaki graficzne), lower (małe litery alfabetu), print (znaki graficzne lub spacje), punct (znaki interpunkcyjne), space (spacja, tabulacja, znak nowej linii oraz powrotu karetki), upper (duże litery alfabetu), xdigit (znaki heksadecymalne)
[a-z]zakres znaków, np. [0-9] to cyfry, [0-9a-a] cyfry i małe litery, [0-9ab] cyfry i litery a oraz b
{N},{N,m}liczba wystąpień, np. a{2} oznacza znak a występujący dwa razy, a{2,3} to znak a wystepujący od 2 do 3 razy

Przykłady

Tabela wykorzystana w przykładach jest dostępna do pobrania.

Zapytanie wybiera wszystkie rekordy, w których pole fname kończy się na 'an'.

REGEXP

Zapytanie wybiera wszystkie rekordy, w których pole fname zawiera podwojoną literę 'e'.

REGEXP

Zapytanie wybiera wszystkie rekordy, w których pole fname zawiera 'ha', 'ye' lub 'be'.

REGEXP

Zapytanie wybiera wszystkie rekordy, w których pole fname zawiera literę 'x' lub 'q'.

REGEXP

Zapytanie wybiera wszystkie rekordy, w których pole fname zawiera literę 'h' lub 'l' i kończy się na 'an'.

REGEXP

Zapytanie wybiera wszystkie rekordy, w których pole fname zaczyna się na 'D', zawiera literę 'm' i kończy się na 'n'.

REGEXP
Artykuł: Pong – symulacja tenisa stołowego

Pong – symulacja tenisa stołowego

Artykuł: Sprzysiężenie Wysockiego

Sprzysiężenie Wysockiego

Artykuł: ORP Gryf

ORP Gryf

Artykuł: Rocznica wybuchu powstania listopadowego

Rocznica wybuchu powstania listopadowego

Artykuł: Stanisław Wyspiański

Stanisław Wyspiański

Nasze technikum

Technik informatyk

Szkoły dla dorosłych

Nasza szkoła

Pełna oferta edukacyjna

Oferta szkoły