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ł: Olimpiada Zdrowia PCK

Olimpiada Zdrowia PCK

Artykuł: Zostań dawcą szpiku!

Zostań dawcą szpiku!

Artykuł: Przeglądarka Vivaldi

Przeglądarka Vivaldi

Artykuł: Lenovo

Lenovo

Artykuł: Światowy Dzień Oszczędzania

Światowy Dzień Oszczędzania

Nasze technikum

Technik informatyk

Szkoły dla dorosłych

Nasza szkoła

Pełna oferta edukacyjna

Oferta szkoły