Ungkapan biasa ialah alat pemprosesan teks yang berkuasa yang boleh membantu kami mengekstrak kandungan yang kami perlukan daripada sekumpulan teks. Menggunakan ungkapan biasa dalam PHP juga sangat mudah Artikel ini akan memperkenalkan cara mengekstrak subrentetan sebelum dan selepas aksara tertentu daripada rentetan.
Dalam PHP, sangat mudah untuk menggunakan fungsi preg_match untuk mengekstrak apa yang kita perlukan daripada rentetan. Parameter pertama fungsi ini ialah ungkapan biasa, parameter kedua ialah rentetan yang akan dicari, dan parameter ketiga ialah tatasusunan yang boleh digunakan untuk menyimpan hasil yang dipadankan.
Sebagai contoh, jika kita ingin mengeluarkan subrentetan "Hello" daripada rentetan "Hello world", kita boleh menggunakan kod berikut:
$pattern = '/w+/'; $str = 'Hello world'; preg_match($pattern, $str, $matches); echo $matches[0]; // 输出 "Hello"
Dalam kod di atas, kami menggunakan mentakrifkan a ungkapan biasa w+
, yang sepadan dengan satu atau lebih huruf, nombor atau garis bawah. Oleh itu, fungsi preg_match boleh memadankan subrentetan "Hello" dan menyimpannya dalam elemen pertama tatasusunan $matches.
Begitu juga, jika kita ingin mengeluarkan subrentetan "budak" daripada rentetan "Saya seorang budak", kita boleh menggunakan kod berikut:
$pattern = '/w+/'; $str = 'I am a boy'; preg_match($pattern, $str, $matches); echo $matches[2]; // 输出 "boy"
Dalam kod di atas, kami menggunakan ungkapan biasa w+
, yang bermaksud memadankan perkataan. Memandangkan kita ingin memadankan perkataan ketiga, tatasusunan $matches menyimpan padanan ketiga, iaitu "budak".
Jika anda ingin mengekstrak berbilang subrentetan daripada rentetan, anda boleh menggunakan fungsi preg_match_all. Fungsi ini serupa dengan fungsi preg_match, tetapi ia sepadan dengan semua subrentetan yang sepadan dan menyimpannya dalam tatasusunan $matches.
Sebagai contoh, jika kita ingin mengeluarkan semua nama haiwan daripada rentetan "Saya ada kucing dan anjing", kita boleh menggunakan kod berikut:
$pattern = '/[a-z]+/'; $str = 'I have a cat and a dog'; preg_match_all($pattern, $str, $matches); print_r($matches[0]); // 输出 Array("cat", "and", "dog")
Dalam kod di atas, Kami menggunakan ungkapan biasa [a-z]+
, yang sepadan dengan perkataan yang bermula dengan huruf dan berakhir dengan huruf. Memandangkan semua subrentetan yang sepadan perlu dipadankan, tatasusunan $matches menyimpan semua subrentetan yang sepadan.
Selain mengekstrak subrentetan daripada rentetan, kita juga boleh menggunakan fungsi preg_replace untuk menggantikan subrentetan tertentu dalam rentetan dengan rentetan lain. Parameter pertama fungsi ini ialah ungkapan biasa yang akan diganti, parameter kedua ialah rentetan yang diganti, parameter ketiga ialah rentetan yang akan diproses, dan parameter keempat ialah bilangan penggantian (boleh diabaikan, lalai ialah -1 , yang menggantikan semua perlawanan).
Sebagai contoh, jika kita ingin menggantikan "kucing" dengan "anjing" dalam rentetan "Saya suka kucing, tetapi saya benci anjing", kita boleh menggunakan kod berikut:
$pattern = '/cats/'; $replacement = 'dogs'; $str = 'I love cats, but I hate dogs'; echo preg_replace($pattern, $replacement, $str); // 输出 "I love dogs, but I hate dogs"
Di atas Dalam kod tersebut, kami menggunakan ungkapan biasa "kucing" untuk memadankan subrentetan yang akan diganti, menggantikannya dengan "anjing".
Ringkasnya, ungkapan biasa boleh digunakan untuk mengekstrak subrentetan dengan mudah sebelum dan selepas aksara tertentu daripada rentetan Fungsi ini boleh dicapai dengan mudah dalam PHP menggunakan fungsi preg_match, preg_match_all dan preg_replace.
Atas ialah kandungan terperinci Ungkapan Biasa PHP: Cara mengekstrak subrentetan sebelum dan selepas aksara tertentu daripada rentetan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!