MariaDB - wyrażenie regularne

Oprócz dopasowywania wzorców dostępnych w klauzulach LIKE MariaDB oferuje dopasowywanie oparte na wyrażeniach regularnych za pośrednictwem operatora REGEXP. Operator przeprowadza dopasowanie do wzorca dla wyrażenia łańcuchowego na podstawie podanego wzorca.

MariaDB 10.0.5 wprowadziła wyrażenia regularne PCRE, które radykalnie zwiększają zakres dopasowywania do obszarów, takich jak wzorce rekurencyjne, asercje przewidujące i inne.

Przejrzyj użycie standardowej składni operatora REGEXP podanej poniżej -

SELECT column FROM table_name WHERE column REGEXP '[PATTERN]';

REGEXP zwraca 1 w przypadku dopasowania do wzorca lub 0 w przypadku jego braku.

Istnieje opcja przeciwna w postaci NOT REGEXP. MariaDB oferuje również synonimy REGEXP i NOT REGEXP, RLIKE i NOT RLIKE, które zostały utworzone ze względu na kompatybilność.

Porównywany wzorzec może być ciągiem literału lub czymś innym, na przykład kolumną tabeli. W łańcuchach używa składni ucieczki C, więc podwoj wszystkie znaki „\”. REGEXP również nie rozróżnia wielkości liter, z wyjątkiem ciągów binarnych.

Poniżej znajduje się tabela możliwych wzorów, które można wykorzystać -

Sr.No Wzór i opis
1

^

Dopasowuje początek łańcucha.

2

$

Dopasowuje koniec struny.

3

.

Pasuje do pojedynczego znaku.

4

[...]

Pasuje do dowolnego znaku w nawiasach.

5

[^...]

Pasuje do każdego znaku niewymienionego w nawiasach.

6

p1|p2|p3

Pasuje do dowolnego wzoru.

7

*

Dopasowuje 0 lub więcej wystąpień poprzedniego elementu.

8

+

Dopasowuje 1 lub więcej wystąpień poprzedniego elementu.

9

{n}

Dopasowuje n wystąpień poprzedniego elementu.

10

{m,n}

Dopasowuje m do n wystąpień poprzedniego elementu.

Przejrzyj przykłady dopasowania wzorca podane poniżej -

Produkty zaczynające się od „pr” -

SELECT name FROM product_tbl WHERE name REGEXP '^pr';

Produkty kończące się na „na” -

SELECT name FROM product_tbl WHERE name REGEXP 'na$';

Produkty zaczynające się od samogłoski -

SELECT name FROM product_tbl WHERE name REGEXP '^[aeiou]';