Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Menukar Ungkapan Biasa ereg ke preg dalam PHP?

Bagaimana untuk Menukar Ungkapan Biasa ereg ke preg dalam PHP?

Barbara Streisand
Barbara Streisandasal
2024-12-20 15:02:14240semak imbas

How to Convert ereg Regular Expressions to preg in PHP?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn