Regex Capture Group Rujukan dalam MySQL
Dalam MySQL, merujuk kumpulan tangkapan dalam ungkapan biasa boleh dicapai menggunakan kaedah berikut:
Sintaks:
REGEXP_REPLACE(string, pattern, replacement)
Untuk MySQL 8:
Kumpulan tangkap boleh dibuat menggunakan kurungan (). Untuk merujuk kepada kumpulan tangkapan, gunakan $1, $2 dan seterusnya.
<code class="sql">SELECT REGEXP_REPLACE('stackoverflow','(.{5})(.*)',''); -- Output: "overflowstack"</code>
Untuk MariaDB:
Kumpulan tangkapan dalam MariaDB diurus secara berbeza. Rujukan belakang menggunakan \1, \2, dan sebagainya.
<code class="sql">SELECT REGEXP_REPLACE('stackoverflow','(.{5})(.*)','\2\1'); -- Output: "overflowstack"</code>
Contoh:
Ungkapan biasa ^(.)1$ menyemak jika terdapat dua yang serupa aksara pada permulaan rentetan, tetapi sintaks ini tidak akan berfungsi dalam MySQL. Sebaliknya, gunakan yang berikut:
<code class="sql">SELECT REGEXP_REPLACE('aabbcc','^(.)(.)$',''); -- Output: "b"</code>
regeks ini sepadan dengan dua aksara pertama rentetan (a dan a) sebagai dua kumpulan tangkapan dan mendapatkan semula aksara kedua (b).
Atas ialah kandungan terperinci Bagaimana untuk Merujuk Kumpulan Tangkapan dalam Ungkapan Biasa dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!