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:
Contoh:
SELECT REGEXP_REPLACE('stackoverflow','(.{5})(.*)',''); -- Returns "overflowstack"
Reex ini menangkap dua kumpulan:
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!