Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana Fungsi REGEXP_SUBSTR() Bekerja di MySQL

Di MySQL, 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 NULL .

Sintaks

Sintaksnya seperti ini:

REGEXP_SUBSTR(expr, pat[, pos[, kejadian[, match_type]]])

Dimana expr adalah string input dan pat adalah pola ekspresi reguler untuk substring.

pos opsional argumen memungkinkan Anda untuk menentukan posisi dalam string untuk memulai pencarian. Jika dihilangkan, dimulai dari posisi 1.

occurrence opsional argumen memungkinkan Anda untuk menentukan kemunculan kecocokan mana yang akan dicari. Jika dihilangkan, kemunculan pertama digunakan (kejadian 1).

match_type opsional argumen memungkinkan Anda untuk memperbaiki ekspresi reguler. Misalnya, Anda dapat menggunakan argumen ini untuk menentukan pencocokan peka huruf besar-kecil atau tidak.

Contoh 1 – Penggunaan Dasar

Berikut ini contoh dasarnya:

SELECT REGEXP_SUBSTR('Thailand or Cambodia', 'l.nd') Hasil;

Hasil:

+--------+| Hasil |+--------+| tanah |+--------+

Dalam hal ini ada kecocokan, dan substring dikembalikan.

Contoh 2 – Beberapa Kecocokan

Secara default, jika ada beberapa kecocokan dalam string, yang pertama dikembalikan (walaupun Anda dapat menentukan kemunculan lain jika diperlukan. Kami akan segera membahasnya):

SELECT REGEXP_SUBSTR('Lend for land', 'l.nd') Result;

Hasil:

+--------+| Hasil |+--------+| Pinjam |+--------+

Contoh 3 – Tidak Cocok

Berikut ini contoh di mana tidak ada kecocokan:

SELECT REGEXP_SUBSTR('Lend for land', '^C') Result;

Hasil:

+--------+| Hasil |+--------+| NULL |+--------+

Tidak ada yang cocok, jadi hasilnya NULL .

Contoh 4 – pos Argumen

Berikut ini contoh menentukan posisi awal:

SELECT REGEXP_SUBSTR('Cat Cut Cot', 'C.t', 2) Hasil;

Hasil:

+--------+| Hasil |+--------+| Potong |+--------+

Kami mulai di posisi 2, yang muncul setelah awal kemunculan pertama, jadi kemunculan berikutnya dikembalikan sebagai gantinya.

Ini contoh lain:

SELECT REGEXP_SUBSTR('Cat Cut Cot', 'C.t', 1) 'Pos 1', REGEXP_SUBSTR('Cat Cut Cot', 'C.t', 2) 'Pos 2', REGEXP_SUBSTR('Cat Cut Cot', 'C.t', 6) 'Pos 6';

Hasil:

+-------+-------+-------+| Pos 1 | Pos 2 | Pos 6 |+-------+-------+-------+| Kucing | Potong | Tempat Tidur Bayi |+-------+-------+-------+

Contoh 5 – occurrence Argumen

Berikut ini contoh penggunaan occurrence argumen. Dalam semua kasus, kita mulai dari posisi 1:

SELECT REGEXP_SUBSTR('Cat Cut Cot', 'C.t', 1, 1) 'Occurrence 1', REGEXP_SUBSTR('Cat Cut Cot', 'C.t', 1, 2) 'Occurrence 2', REGEXP_SUBSTR('Cat Cut Cot', 'C.t', 1, 3) 'Occurrence 3';

Hasil:

+-------------+--------------+--------------+| Kejadian 1 | Kejadian 2 | Kejadian 3 |+--------------+--------------+--------------+| Kucing | Potong | Cot |+--------------+--------------+--------------+ 

Namun, jika kita mulai dari posisi yang berbeda, hasilnya berbeda:

SELECT REGEXP_SUBSTR('Cat Cut Cot', 'C.t', 2, 1) 'Occurrence 1', REGEXP_SUBSTR('Cat Cut Cot', 'C.t', 2, 2) 'Occurrence 2', REGEXP_SUBSTR('Cat Cut Cot', 'C.t', 2, 3) 'Occurrence 3';

Hasil:

+-------------+--------------+--------------+| Kejadian 1 | Kejadian 2 | Kejadian 3 |+--------------+--------------+--------------+| Potong | Ranjang bayi | NULL |+--------------+--------------+--------------+ 

Ini terjadi karena posisi awal kami datang setelah kejadian pertama dimulai. Oleh karena itu, kejadian 2 menjadi kejadian 1, dan kejadian 3 menjadi kejadian 2. Dan karena tidak ada kejadian lagi, hasil kejadian 3 adalah NULL (yaitu tidak ada kejadian 3).

Contoh 6 – match_type Argumen

Anda dapat memberikan argumen tambahan untuk menentukan jenis pencocokan. Ini memungkinkan Anda untuk menentukan hal-hal seperti apakah kecocokan peka huruf besar-kecil atau tidak, apakah akan menyertakan terminator baris atau tidak, dll.

Berikut adalah contoh menentukan kecocokan peka huruf besar-kecil dan kecocokan peka huruf besar/kecil:

SELECT REGEXP_SUBSTR('Cat Cut Cot', 'c.t', 1, 1, 'c') 'Case-Sensitive', REGEXP_SUBSTR('Cat Cut Cot', 'c.t', 1, 1, 'i') 'Peka Huruf Besar-kecil';

Hasil:

+----------------+------------------+| Peka Huruf Besar-kecil | Tidak peka huruf besar/kecil |+----------------+------------------+| NULL | Kucing |+----------------+------------------+

match_type argumen dapat berisi karakter berikut:

c
Pencocokan peka huruf besar/kecil.
i
Pencocokan peka huruf besar/kecil.
m
Mode banyak baris. Kenali terminator garis di dalam string. Perilaku default adalah mencocokkan terminator baris hanya di awal dan akhir ekspresi string.
n
. karakter cocok dengan terminator garis. Standarnya adalah untuk . cocok untuk berhenti di akhir baris.
u
Akhir baris khusus Unix. Hanya karakter baris baru yang dikenali sebagai baris yang diakhiri dengan . , ^ , dan $ operator pertandingan.

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ubah teks menjadi angka dalam kueri MySQL

  2. MySQL PADA KUNCI DUPLICATE - masukkan id terakhir?

  3. ORDER BY tanggal dan waktu SEBELUM GROUP BY nama di mysql

  4. mysql PDO cara mengikat LIKE

  5. Menggunakan alias kolom dalam klausa WHERE dari kueri MySQL menghasilkan kesalahan