Rumah > pembangunan bahagian belakang > tutorial php > Mengapa Saya Mendapat Ralat 'Pengubahsuai Tidak Diketahui 'g' dalam preg_match'?

Mengapa Saya Mendapat Ralat 'Pengubahsuai Tidak Diketahui 'g' dalam preg_match'?

Mary-Kate Olsen
Lepaskan: 2024-11-11 11:50:03
asal
491 orang telah melayarinya

Why Am I Getting the

Menyingkap Misteri Di Sebalik "Unknown Modifier 'g' in preg_match"

Apabila bekerja dengan ungkapan biasa dalam PHP menggunakan fungsi preg_match, anda mungkin menghadapi mesej ralat yang menyatakan "Pengubah suai tidak diketahui 'g'". Isu ini berkaitan dengan sintaks yang salah dalam ungkapan biasa yang anda gunakan.

Masalahnya

Ungkapan biasa yang anda cuba gunakan mengandungi 'g' pengubah suai (cth., /regex/gim) yang tidak dikenali oleh fungsi preg_match. Walaupun sesetengah tapak web ujian regex dalam talian mungkin membenarkan pengubah suai 'g', PHP tidak menyokongnya dalam konteks ini.

Penyelesaian

Untuk menyelesaikan isu ini, anda sebaliknya boleh menggunakan fungsi preg_match_all, yang menyokong pengubah suai 'g' untuk memadankan berbilang kejadian sesuatu corak. Pengubah suai 'g' memperkenalkan carian global, menunjukkan bahawa fungsi itu harus berulang pada keseluruhan rentetan dan sepadan dengan semua kemunculan corak.

Contoh

Sebaliknya:

preg_match("/^(\w|\.|-)+?@(\w|-)+?\.\w{2,4}($|\.\w{2,4})$/gim", ....)
Salin selepas log masuk

Gunakan:

preg_match_all("/^(\w|\.|-)+?@(\w|-)+?\.\w{2,4}($|\.\w{2,4})$/im", ....)
Salin selepas log masuk

Dengan menggantikan pengubah suai 'g' dengan pengubah 'm' dalam fungsi preg_match_all, kod anda akan berfungsi seperti yang dimaksudkan, memadankan berbilang kejadian corak alamat e-mel yang ditentukan dalam rentetan input.

Atas ialah kandungan terperinci Mengapa Saya Mendapat Ralat 'Pengubahsuai Tidak Diketahui 'g' dalam preg_match'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan