MariaDB - Ekspresi Reguler

Di luar pencocokan pola yang tersedia dari klausa LIKE, MariaDB menawarkan pencocokan berbasis ekspresi reguler melalui operator REGEXP. Operator melakukan pencocokan pola untuk ekspresi string berdasarkan pola yang diberikan.

MariaDB 10.0.5 memperkenalkan Ekspresi Reguler PCRE, yang secara dramatis meningkatkan cakupan pencocokan ke dalam area seperti pola rekursif, pernyataan di depan, dan banyak lagi.

Tinjau penggunaan sintaks operator REGEXP standar yang diberikan di bawah ini -

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

REGEXP mengembalikan 1 untuk kecocokan pola atau 0 jika tidak ada satu pun.

Opsi sebaliknya ada dalam bentuk NOT REGEXP. MariaDB juga menawarkan sinonim untuk REGEXP dan NOT REGEXP, RLIKE dan NOT RLIKE, yang dibuat untuk alasan kompatibilitas.

Pola yang dibandingkan dapat berupa string literal atau hal lain seperti kolom tabel. Dalam string, ia menggunakan sintaks escape C, jadi gandakan karakter “\” apa pun. REGEXP juga peka huruf besar / kecil, dengan pengecualian string biner.

Tabel pola yang mungkin, yang dapat digunakan diberikan di bawah ini -

Sr Tidak Pola & Deskripsi
1

^

Ini cocok dengan awal string.

2

$

Ini cocok dengan ujung string.

3

.

Ini cocok dengan satu karakter.

4

[...]

Itu cocok dengan semua karakter dalam tanda kurung.

5

[^...]

Itu cocok dengan semua karakter yang tidak terdaftar dalam tanda kurung.

6

p1|p2|p3

Ini cocok dengan salah satu pola.

7

*

Ini cocok dengan 0 atau lebih instance dari elemen sebelumnya.

8

+

Ini cocok dengan 1 atau lebih contoh dari elemen sebelumnya.

9

{n}

Ini cocok dengan n contoh dari elemen sebelumnya.

10

{m,n}

Ini cocok dengan m ke n instance dari elemen sebelumnya.

Tinjau contoh pencocokan pola yang diberikan di bawah ini -

Produk yang dimulai dengan "pr" -

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

Produk yang diakhiri dengan "na" -

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

Produk dimulai dengan vokal -

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