Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana Saya Boleh Menukar Ungkapan Biasa ereg dengan berkesan kepada preg dalam PHP?

Bagaimana Saya Boleh Menukar Ungkapan Biasa ereg dengan berkesan kepada preg dalam PHP?

Susan Sarandon
Susan Sarandonasal
2025-01-03 22:19:40360semak imbas

How Can I Effectively Convert ereg Regular Expressions to preg in PHP?

Menukar Ungkapan Biasa ereg kepada preg dalam PHP

Memandangkan PHP 5.3.0 menafikan ungkapan biasa POSIX (ereg), menukar ungkapan ereg lama kepada PCRE (Perl Compatible Regular Expressions) (preg) menjadi penting. Artikel ini menyediakan panduan ringkas untuk memudahkan peralihan ini.

Tidak seperti ereg, preg memerlukan pembatas di kedua-dua hujung ungkapan biasa. Pembatas yang biasa digunakan termasuk ~, /, dan #. Sebagai contoh, ungkapan ereg "^hello world" boleh ditukar kepada preg_match("/^hello world/") dengan melampirkannya dalam garis miring ke hadapan.

Kurungan pemadanan juga boleh berfungsi sebagai pembatas, membenarkan variasi seperti 1, (^hello), dan {^hello}. Walau bagaimanapun, pembatas yang termasuk dalam ungkapan mesti dilepaskan menggunakan garis serong ke belakang. Contoh: ereg("^/hello", $str) menjadi preg_match('/^/hello/', $str).

fungsi preg_quote terbukti berguna dalam melepaskan pembatas dan aksara terpelihara dalam rentetan. Contoh: $expr = preg_quote('/hello', '/'); preg_match('/^'.$expr.'/', $str).

PCRE menyokong pengubah suai seperti i (tidak sensitif huruf besar-besaran), bersamaan dengan eregi. Contoh: eregi('^hello', 'HELLO') boleh digantikan dengan preg_match('/^hello/i', 'HELLO').

Untuk rujukan sintaks PCRE terperinci dan panduan penukaran ereg-PCRE, rujuk manual PHP.

Dalam sesetengah kes, ungkapan biasa mungkin tidak diperlukan. Untuk contoh yang disediakan (eregi('^hello world')), perbandingan ringkas menggunakan stripos($str, 'hello world') === 0 sudah memadai.


  1. hello

Atas ialah kandungan terperinci Bagaimana Saya Boleh Menukar Ungkapan Biasa ereg dengan berkesan kepada 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