Ungkapan biasa ialah alat pemprosesan teks yang berkuasa yang membolehkan anda mencari rentetan dengan corak tertentu dalam teks dan menggantikan atau mengekstraknya. Dalam PHP, ungkapan biasa menggunakan siri preg fungsi, termasuk preg_match, preg_match_all, preg_replace, dsb. Artikel ini menerangkan cara menggunakan PHP untuk pemadanan ungkapan biasa.
fungsi preg_match ialah salah satu fungsi ungkapan biasa yang paling biasa digunakan dalam PHP. Ia menerima tiga parameter: corak, rentetan dan rujukan pembolehubah pilihan. Corak ialah ungkapan biasa dan rentetan ialah teks yang akan dicari. Fungsi mengembalikan 1 jika padanan ditemui, 0 sebaliknya.
Berikut ialah contoh mudah:
$pattern = '/(d+)/'; $string = 'I have 2 apples and 3 bananas'; if (preg_match($pattern, $string, $matches)) { echo 'First number found: ' . $matches[0]; }
Dalam contoh ini, kami menggunakan corak ungkapan biasa /(d+)/, yang sepadan dengan semua nombor. Selepas mencari nombor dalam rentetan buat kali pertama, kami mencari corak ini menggunakan fungsi preg_match. Jika padanan ditemui, fungsi mengembalikan 1 dan melepasi hasil yang sepadan dalam pembolehubah $matches. Dalam contoh ini, kita boleh mendapatkan nombor 2.
Tidak seperti fungsi preg_match, fungsi preg_match_all mencari keseluruhan rentetan dan mengembalikan tatasusunan semua padanan. Fungsi ini juga mengambil tiga parameter: corak, rentetan dan tatasusunan untuk menyimpan hasilnya.
Berikut ialah contoh penggunaan fungsi preg_match_all:
$pattern = '/(d+)/'; $string = 'I have 2 apples and 3 bananas'; if (preg_match_all($pattern, $string, $matches)) { echo 'All numbers found: ' . implode(', ', $matches[0]); }
Dalam contoh ini, kami menggunakan corak yang sama, tetapi kami menggunakan fungsi preg_match_all untuk mencari keseluruhan rentetan. Jika sekurang-kurangnya satu padanan ditemui, fungsi mengembalikan 1 dan menyimpan semua padanan dalam pembolehubah $matches. Dalam contoh ini, kami memisahkan semua hasil yang sepadan dengan koma dan mencetaknya.
Selain mencari dan mengekstrak, anda juga boleh menggunakan fungsi preg_replace untuk menggantikan semua padanan dalam rentetan. Fungsi ini mengambil tiga parameter: corak, rentetan gantian dan rentetan yang hendak dicari.
Berikut ialah contoh:
$pattern = '/apple/'; $replace = 'orange'; $string = 'I have an apple'; echo preg_replace($pattern, $replace, $string);
Dalam contoh ini, kami menggunakan fungsi preg_replace untuk menggantikan semua kemunculan corak /epal/ dalam rentetan dengan oren.
Ekspresi biasa juga boleh digunakan untuk menjana HTML atau rentetan lain secara dinamik. Dalam kes ini, kita boleh menggunakan fungsi preg_replace_callback untuk melakukan tindakan tertentu, seperti menggantikan templat dengan kandungan yang akan dipaparkan.
Berikut ialah kod sampel:
$template = "Hello {{ name }}! Today is {{ day }}."; $data = [ 'name' => 'PHP', 'day' => 'Monday', ]; $pattern = '/{{s*([a-zA-Z0-9_]+)s*}}/'; $result = preg_replace_callback( $pattern, function($matches) use ($data) { return $data[$matches[1]]; }, $template ); echo $result;
Dalam contoh ini, kami menggunakan rentetan templat mudah dengan dua pembolehubah: {{ nama }} dan {{ hari }} . Kami juga menyimpan data dalam tatasusunan bersekutu dan kemudian menggunakan fungsi preg_replace_callback untuk mengulangi semua pembolehubah yang sepadan dan menggantikannya dengan nilai yang sepadan dalam tatasusunan bersekutu. Dalam contoh ini, kami menggantikan rentetan templat dengan Hello PHP!
Ringkasan
Di atas ialah pengetahuan asas pemadanan ungkapan biasa menggunakan PHP. Oleh kerana ungkapan biasa ialah alat yang berkuasa, artikel ini hanya menyediakan beberapa contoh penggunaan asas. Saya harap contoh ini dapat membantu anda menguasai penggunaan asas ungkapan biasa dan memainkan peranan yang lebih besar dalam kerja harian anda.
Atas ialah kandungan terperinci Bagaimana untuk melakukan pemadanan ungkapan biasa menggunakan PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!