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ł: Staże w Hiszpanii

Staże w Hiszpanii

Artykuł: Conformité Européenne

Conformité Européenne

Artykuł: Display Stream Compression

Display Stream Compression

Artykuł: High Dynamic Range

High Dynamic Range

Artykuł: PiP i podobne technologie

PiP i podobne technologie

Nasze technikum

Technik informatyk

Szkoły dla dorosłych

Nasza szkoła

Pełna oferta edukacyjna

Oferta szkoły