Bagaimanakah anda merujuk kumpulan tangkapan dalam regex MySQL?

Susan Sarandon
Lepaskan: 2024-11-04 03:59:02
asal
319 orang telah melayarinya

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"
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan