Penggantian Perkataan Berasaskan Regex dalam Rentetan PHP
Menggantikan perkataan tertentu dalam rentetan boleh menjadi rumit jika anda ingin memastikan bahawa hanya keseluruhan perkataan dipadankan. Dalam kes khusus ini, teks rentetan mengandungi perkataan "Hello" dalam pelbagai bentuk, tetapi kami mahu menggantikan hanya kejadian lengkap "Hello."
Untuk mencapai ini, kami boleh menggunakan fungsi ekspresi biasa PHP. Ungkapan biasa menyediakan alat yang berkuasa untuk memadankan corak dalam rentetan. Kunci untuk mengehadkan penggantian kepada keseluruhan perkataan ialah metacharacter b, yang sepadan dengan sempadan perkataan.
Dengan mengubah suai fungsi str_replace untuk menggabungkan ungkapan biasa, kami boleh mencapai matlamat kami:
$text = "Hello hellol hello, Helloz"; $newtext = preg_replace('/\bHello\b/', 'NEW', $text);
B dalam ungkapan biasa memastikan bahawa hanya keseluruhan kejadian "Hello" dipadankan, tidak termasuk mana-mana separa atau bertindih perlawanan. Hasilnya ialah:
NEW hellol hello, Helloz
Ini menggantikan hanya tika lengkap "Hello" dengan "BARU" sambil membiarkan variasi lain tidak disentuh.
Pengendalian Unikod UTF-8:
Jika teks mengandungi aksara UTF-8, langkah tambahan diperlukan untuk memastikan pengecaman perkataan yang betul sempadan. Pengekodan UTF-8 untuk aksara Unikod memerlukan penggunaan pengubah suai "u" dalam ungkapan biasa:
$text = "Hello hellol こんにちは, Helloz"; $newtext = preg_replace('/\bHello\b/u', 'NEW', $text);
Ini akan menggantikan semua kejadian lengkap "Hello" tanpa mengira bahasa atau pengekodan aksara.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggantikan Seluruh Perkataan Hanya Menggunakan Regex dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!