Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana Saya Boleh Jadikan PHP `preg_match()` Case-Insensitive?
Mengabaikan Kes dalam preg_match()
Apabila melakukan padanan corak menggunakan fungsi preg_match() PHP, anda mungkin menghadapi situasi di mana sensitiviti kes menjadi faktor. Untuk menjadikan preg_match() case insensitive, anda boleh menggunakan teknik berikut:
Penyelesaian:
Kunci kepada case insensitivity dalam preg_match() terletak pada penambahan i pengubah suai selepas pembatas. Sebagai contoh, pertimbangkan kes berikut:
preg_match("#(.{100}$keywords.{100})#", strip_tags($description), $matches);
Dalam contoh ini, matlamatnya ialah untuk memaparkan 100 aksara pada setiap sisi rentetan carian $keywords. Walaupun kod ini berfungsi, ia sensitif huruf besar. Untuk menjadikannya tidak sensitif huruf besar, tambahkan i pengubah suai seperti berikut:
preg_match("#(.{100}$keywords.{100})#i", strip_tags($description), $matches);
Sebagai alternatif, jika pembatas anda ialah garis miring ke hadapan "/", anda boleh menambah i pengubah suai selepasnya, seperti yang dilihat dalam contoh berikut:
preg_match("/your_regexp_here/i", $s, $matches); // i means case insensitive
Kesan daripada i Modifier:
Dengan menyatakan i pengubah suai, anda mengarahkan preg_match() untuk mengabaikan perbezaan kes dalam proses pemadanan. Ini bermakna jika rentetan sasaran mengandungi sama ada huruf besar atau huruf kecil yang sepadan dengan corak, perlawanan akan tetap berjaya.
Contoh:
Pertimbangkan corak:
"/abc/"
Dengan pengubah suai i digunakan, corak ini akan sepadan dengan rentetan "ABC", "abc", dan "aBc". Tanpa pengubah i, hanya rentetan "abc" yang tepat akan dipadankan.
Atas ialah kandungan terperinci Bagaimana Saya Boleh Jadikan PHP `preg_match()` Case-Insensitive?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!