Penukaran daripada Ereg kepada Preg dalam PHP
Dalam PHP, ungkapan biasa POSIX (ereg) telah ditamatkan sejak versi 5.3.0. Untuk memudahkan peralihan, adalah penting untuk memahami cara menukar ungkapan ereg lama kepada PCRE (Perl Compatible Regular Expressions) (preg).
Perbezaan Sintaks
Sintaks utama perbezaan adalah penambahan pembatas dalam preg. Sebagai contoh, ungkapan ereg berikut:
eregi('^hello world');
hendaklah ditukar kepada ungkapan preg_match seperti ini:
preg_match('/^hello world/', $str);
Pembatas boleh menjadi pelbagai aksara bukan abjad angka, dengan pilihan biasa ialah ~, /, dan #.
Padanan Kurungan
Selain itu, anda boleh menggunakan kurungan yang sepadan sebagai pembatas:
preg_match('[^hello]', $str); preg_match('(^hello)', $str); preg_match('{^hello}', $str);
Pembatas Melarikan Diri
Jika pembatas anda muncul dalam senarai biasa ungkapan, elakkannya menggunakan garis miring ke belakang:
eregi('^/hello', $str); preg_match('/^\/hello/', $str);
Untuk melarikan diri semua pembatas dan aksara terpelihara, gunakan preg_quote:
$expr = preg_quote('/hello', '/'); preg_match('/^'.$expr.'/', $str);
Pengubahsuai
PCRE menyokong pengubah suai untuk pelbagai ciri. Contohnya, pengubah suai tidak peka huruf besar-kecil i menggantikan fungsi eregi:
eregi('^hello', 'HELLO'); preg_match('/^hello/i', 'HELLO');
Penukaran Contoh
Dalam contoh yang anda berikan, ungkapan biasa tidak diperlukan. Sebaliknya, anda boleh menggunakan fungsi PHP berikut:
stripos($str, 'hello world') === 0
Atas ialah kandungan terperinci Bagaimana untuk Menukar Ungkapan Biasa ereg ke preg dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!