Menukar Ungkapan PCRE dengan PHP
Ungkapan biasa POSIX (eg) tidak lagi disyorkan dalam PHP 5.3.0 dan lebih baru. Artikel ini menyediakan cara mudah untuk menukar ungkapan ereg lama kepada Perl Compatible Regular Expressions (PCRE atau preg), yang masih disokong.
Perubahan Sintaks
Perbezaan utama yang perlu diperhatikan ialah penambahan pembatas dalam preg. Mereka menghalang perlanggaran dengan aksara dalam ungkapan. Pembatas biasa termasuk ~, /, dan #.
Pembatas Melarikan Diri
Jika pembatas berlaku dalam ungkapan, ia mesti dilepaskan. Sebagai contoh, ungkapan yang mengandungi garis miring ke hadapan memerlukan pelarian:
preg_match('/^\/hello/', $str);
Menggunakan preg_quote
Untuk memastikan aksara melarikan diri ditambahkan dengan betul, gunakan fungsi preg_quote. Ia terlepas dari semua pembatas dan aksara terpelihara:
$expr = preg_quote('/hello', '/'); preg_match('/^'.$expr.'/', $str);
Ketidakpekaan Kes
Pengubah suai i menyediakan padanan tidak sensitif huruf besar-besaran seperti eregi:
preg_match('/^hello/i', 'HELLO');
Panduan Rujukan
Untuk rujukan komprehensif tentang sintaks PCRE dalam PHP, rujuk manual rasmi. Selain itu, manual termasuk pecahan perbezaan antara POSIX dan PCRE regex, membantu dalam proses penukaran.
Alternatif Lebih Mudah untuk Ungkapan Ringkas
Dalam contoh yang disediakan ( memadankan 'hello world' pada permulaan rentetan), ungkapan biasa mungkin tidak diperlukan:
stripos($str, 'hello world') === 0
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menukar Ungkapan Biasa PHP ereg Saya dengan Mudah kepada PCRE?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!