Melepaskan Watak untuk Corak Regex dalam PHP
Dalam PHP, fungsi preg_quote() menyediakan cara untuk melepaskan aksara dalam ungkapan biasa ( Regex) corak yang mempunyai makna istimewa kepada enjin Regex. Ini menghalang aksara ini daripada ditafsirkan sebagai sebahagian daripada corak, membenarkan ungkapan untuk digunakan dalam corak Regex lain tanpa menyebabkan konflik.
Serupa dengan fungsi Regex.Escape() dalam C#, preg_quote() menambah garis miring ke belakang () sebelum setiap aksara dalam rentetan input yang merupakan sebahagian daripada sintaks Regex. Watak istimewa ini termasuk:
Secara lalai, preg_quote() tidak terlepas daripada aksara pembatas yang digunakan untuk menyertakan corak Regex. Untuk memastikan bahawa pembatas juga terlepas, nyatakan ia sebagai parameter kedua kepada fungsi.
Contoh:
Andaikan kita mempunyai URL, $url = 'http ://stackoverflow.com/questions?sort=newest', yang kami mahu cari dalam rentetan yang dikelilingi oleh ruang kosong:
// Escape the characters in the URL and the forward slash (/) delimiter $escapedUrl = preg_quote($url, '/'); // Enclose the Regex pattern in forward slashes $regex = '/\s' . $escapedUrl . '\s/'; // Find occurrences of the URL in the string preg_match($regex, $haystack, $matches); var_dump($matches);
Dalam contoh ini, preg_quote() melarikan diri dari titik (.), tanda soal (?), dan tanda sama (=) dalam URL, serta semua garis miring ke hadapan. Hasilnya, corak Regex yang kami cipta berjaya mencari URL dalam rentetan tumpukan jerami.
Atas ialah kandungan terperinci Bagaimanakah Fungsi PHP `preg_quote()` Meloloskan Watak untuk Penggunaan Corak Regex Selamat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!