Di MariaDB, REGEXP_SUBSTR()
fungsi mengembalikan substring yang cocok dengan pola ekspresi reguler yang diberikan.
Jika tidak ada kecocokan (yaitu string input tidak berisi substring), hasilnya adalah string kosong.
Sintaks
Sintaksnya seperti ini:
REGEXP_SUBSTR(subject,pattern)
Dimana subject
adalah string input dan pattern
adalah pola ekspresi reguler untuk substring.
Perhatikan bahwa, pada saat penulisan, versi REGEXP_SUBSTR()
MariaDB menerima argumen lebih sedikit daripada REGEXP_SUBSTR()
MySQL . Versi MySQL memungkinkan Anda memberikan argumen untuk posisi awal pencarian, kemunculan mana yang akan dicari, serta cara untuk menyaring ekspresi reguler.
Contoh
Berikut ini contoh dasarnya:
SELECT REGEXP_SUBSTR('Thailand and Laos', 'l.nd');
Hasil:
+--------------------------------------------+| REGEXP_SUBSTR('Thailand and Laos', 'l.nd') |+---------------------------------- ----------+| tanah |+--------------------------------------------+Dalam hal ini ada kecocokan, dan substring dikembalikan.
Beberapa Kecocokan
Secara default, jika ada beberapa kecocokan dalam string, yang pertama dikembalikan:
SELECT REGEXP_SUBSTR('Lend for land', 'l.nd');
Hasil:
+---------------------------------------+| REGEXP_SUBSTR('Meminjamkan tanah', 'l.nd') |+---------------------------------- ------+| Pinjam |+---------------------------------------+Tidak Cocok
Berikut ini contoh di mana tidak ada kecocokan:
SELECT REGEXP_SUBSTR('Lend for land', '^C');
Hasil:
+--------------------------------------+| REGEXP_SUBSTR('Meminjamkan tanah', '^C') |+----------------------------------- ---+| |+---------------------------------------+Tidak ada yang cocok, jadi hasilnya adalah string kosong.
Sensitivitas Huruf Besar
REGEXP_SUBSTR()
fungsi mengikuti aturan sensitivitas huruf dari susunan yang efektif. Pencocokan dilakukan dengan tidak peka huruf besar/kecil untuk susunan huruf besar/kecil, dan peka huruf besar/kecil untuk susunan huruf besar/kecil dan untuk data biner.Ini contohnya:
SELECT REGEXP_SUBSTR('My Cats', 'c.t') AS "My Default", REGEXP_SUBSTR(_latin7'My Cats' COLLATE latin7_general_ci, 'c.t') AS "Case Insensitive", REGEXP_SUBSTR(_latin7'My Cats' COLLATE latin7_general_cs, 'c.t') AS "Case Sensitive";
Hasil:
+-------------+------------------+-------------- --+| Default Saya | Tidak peka huruf besar/kecil | Peka Huruf Besar |+------------+------------------+------------- --+| Kucing | Kucing | |+------------+------------------+---------------- +Susunan default saya tidak peka huruf besar-kecil. Dua string lainnya dipaksa ke susunan case-sensitive dan collation case sensitive masing-masing.
Memberikan
BINARY
string juga peka huruf besar/kecil (lihat di bawah).String Biner
Melewati
BINARY
string juga mempengaruhi sensitivitas kasus. DenganBINARY
string, karakter huruf besar berbeda dengan huruf kecilnya:Contoh:
SELECT REGEXP_SUBSTR('My Cats', 'c.t') AS "Character", REGEXP_SUBSTR(BINARY 'My Cats', 'c.t') AS "Binary";
Hasil:
+-----------+--------+| Karakter | Biner |+------------+--------+| Kucing | |+-----------+--------+Inilah yang terjadi jika kita mengubah kasusnya:
SELECT REGEXP_SUBSTR('My Cats', 'C.t') AS "Character", REGEXP_SUBSTR(BINARY 'My Cats', 'C.t') AS "Binary";
Hasil:
+-----------+--------+| Karakter | Biner |+------------+--------+| Kucing | Kucing |+-----------+--------+Argumen Null
Melewati
null
karena argumen apa pun menghasilkannull
:SELECT REGEXP_SUBSTR(null, 'c.t') AS "1", REGEXP_SUBSTR('Cat', null) AS "2", REGEXP_SUBSTR(null, null) AS "3";
Hasil:
+------+------+------+| 1 | 2 | 3 |+------+------+------+| NULL | NULL | NULL |+------+------+------+Jumlah Argumen Salah
Melewati jumlah argumen yang salah atau tidak ada argumen, menghasilkan kesalahan:
SELECT REGEXP_SUBSTR('Cat');
Hasil:
ERROR 1582 (42000):Jumlah parameter salah dalam panggilan ke fungsi asli 'REGEXP_SUBSTR'