Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Memindahkan Kod PHP Saya daripada Ungkapan Biasa `ereg` kepada `preg`?

Bagaimanakah Saya Memindahkan Kod PHP Saya daripada Ungkapan Biasa `ereg` kepada `preg`?

Barbara Streisand
Barbara Streisandasal
2024-12-26 11:38:10196semak imbas

How Do I Migrate My PHP Code from `ereg` to `preg` Regular Expressions?

Berpindah daripada EReg ke PREG dalam PHP

Sejak PHP 5.3.0, ungkapan biasa POSIX (eg) telah ditamatkan, memerlukan penggunaan Ungkapan Biasa Serasi Perl (preg). Peralihan ini memerlukan pengubahsuaian kepada ungkapan ereg sedia ada untuk keserasian dengan preg_match.

Perbezaan Sintaks

Perubahan sintaksis utama melibatkan penambahan pembatas pada ungkapan. Tidak seperti ereg, preg memerlukan pembatas sebelum dan selepas ungkapan biasa. Pembatas boleh menjadi aksara seperti ~, /, atau #, malah kurungan yang sepadan (cth., [], (), {}).

preg_match('/^hello/', $str); // Using '/' as a delimiter
preg_match('[^hello]', $str); // Using square brackets as a delimiter

Pembatas Melarikan Diri

Jika pembatas yang dipilih muncul dalam ungkapan biasa, elakkannya menggunakan garis miring ke belakang ().

preg_match('/^\/hello/', $str);

Menggunakan preg_quote

Untuk melarikan diri menyeluruh semua pembatas dan aksara terpelihara, gunakan preg_quote:

$expr = preg_quote('/hello', '/');
preg_match('/^'.$expr.'/', $str);

Padanan Tidak Peka Huruf

Untuk melaksanakan padanan tidak sensitif huruf besar dan kecil, gunakan pengubah i:

preg_match('/^hello/i', $str);

Menukar Contoh Diberi

Contoh yang disediakan, eregi('^hello world'), tidak sepatutnya ditukar kepada preg_match kerana ia boleh dipermudahkan menggunakan fungsi stripos:

stripos($str, 'hello world') === 0

Atas ialah kandungan terperinci Bagaimanakah Saya Memindahkan Kod PHP Saya daripada Ungkapan Biasa `ereg` kepada `preg`?. 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