Rumah  >  Artikel  >  pangkalan data  >  Bagaimanakah anda merujuk kumpulan tangkapan dalam regex MySQL?

Bagaimanakah anda merujuk kumpulan tangkapan dalam regex MySQL?

Susan Sarandon
Susan Sarandonasal
2024-11-04 03:59:02290semak imbas

How do you reference capture groups in MySQL regex?

Menangkap Kumpulan dalam MySQL Regex

Apabila menggunakan ungkapan biasa (regex) dalam MySQL, selalunya perlu untuk mengekstrak bahagian tertentu teks yang dipadankan ke dalam kumpulan tangkapan. Walau bagaimanapun, tidak seperti bahasa lain, MySQL tidak menyediakan sintaks langsung untuk merujuk kumpulan ini dalam operasi regex berikutnya.

Soalan:

Bagaimanakah kumpulan tangkap boleh dirujuk dalam regex MySQL?

Jawapan:

Dalam MySQL, kumpulan tangkapan dirujuk menggunakan tatatanda khas. Untuk versi MySQL 8 dan lebih tinggi:

  • Sintaks $n digunakan, dengan n ialah nombor kumpulan tangkapan (mis., $1 untuk kumpulan pertama).

Contoh:

SELECT REGEXP_REPLACE('stackoverflow','(.{5})(.*)','');
-- Returns "overflowstack"

Reex ini menangkap dua kumpulan:

  1. Lima aksara pertama menggunakan kumpulan tangkapan (.{5})
  2. Aksara yang tinggal menggunakan kumpulan tangkapan (.*)

Fungsi REGEXP_REPLACE() kemudian menggantikan rentetan asal dengan kumpulan kedua diikuti oleh kumpulan pertama, dengan berkesan membalikkan susunan yang pertama lima aksara.

Nota: Untuk MariaDB, tatatanda untuk merujuk tangkapan adalah sedikit berbeza, menggunakan 1, 2, dsb. dan bukannya $1, $2.

Atas ialah kandungan terperinci Bagaimanakah anda merujuk kumpulan tangkapan dalam regex MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn