Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Aplikasi lanjutan ungkapan biasa dalam PHP

Aplikasi lanjutan ungkapan biasa dalam PHP

PHPz
PHPzasal
2023-06-22 18:27:111190semak imbas

Dalam pembangunan PHP, ungkapan biasa ialah alatan yang sangat cekap yang boleh membantu pembangun melaksanakan pemadanan rentetan, penggantian, pengekstrakan dan operasi lain dengan pantas. Artikel ini akan memperkenalkan aplikasi lanjutan ungkapan biasa dalam PHP, termasuk rujukan belakang, pemadanan tamak dan malas, penegasan lebar sifar, dsb.

1. Rujukan Balik

Rujukan belakang ialah konsep yang sangat penting dalam ungkapan biasa Ia boleh menggunakan kandungan subungkapan yang telah dipadankan untuk memadankan rentetan berikut. Dalam PHP, apabila menggunakan rujukan balik ungkapan biasa, anda perlu menggunakan simbol khas "" dalam kombinasi dengan nombor.

Sebagai contoh, ungkapan biasa berikut boleh memadankan dua perkataan yang serupa berturut-turut:

/^(w+)s$/

Di mana, " " mewakili rujukan belakang kepada subungkapan pertama, sepadan dengan perkataan sebelumnya.

2. Padanan tamak dan malas

Dalam ungkapan biasa, padanan tamak bermaksud memadankan sebanyak mungkin aksara, manakala padanan malas bermaksud memadankan sesedikit aksara yang mungkin. Dalam PHP, anda boleh melaksanakan padanan tamak dan malas dengan menambahkan "?" Secara lalai, padanan tamak digunakan.

Sebagai contoh, ungkapan biasa berikut boleh memadankan teg a dalam HTML:

/<a.*?href="(.*?)".*?>(.*?)</a>/

Antaranya, .? bermaksud pemadanan malas, (.?) bermaksud mengekstrak href URL dan kandungan teks dalam teg a.

3. Penegasan lebar sifar

Penegasan lebar sifar merujuk kepada pemadanan sama ada bahagian hadapan atau belakang kedudukan tertentu dalam rentetan memenuhi syarat tertentu, tetapi kandungan yang dipadankan bukan milik hasilnya, yang dipanggil Lebar sifar. Penegasan lebar sifar biasa termasuk pandangan ke hadapan positif, pandangan ke hadapan negatif, pandangan ke belakang positif dan pandangan ke hadapan negatif.

(1) Pandangan positif ke hadapan

Kandungan yang berjaya dipadankan dengan pandangan ke hadapan yang positif mesti segera mengikut kandungan yang hendak dipadankan.

Sebagai contoh, ungkapan biasa berikut boleh memadankan perkataan diikuti dengan nombor:

/w+(?=d)/

di mana "(?=d)" bermaksud pandangan ke hadapan, nombor yang sepadan dan bukan Nombor sebagai hasil.

(2) Pandangan negatif ke hadapan

Kandungan yang berjaya dipadankan dengan pandangan negatif mesti tidak serta-merta mengikut kandungan yang hendak dipadankan.

Sebagai contoh, ungkapan biasa berikut boleh memadankan perkataan yang tidak diikuti oleh nombor:

/w+(?!d)/

di mana "(?!d)" bermaksud pandangan negatif, padanan kandungan yang tidak nombor, dan Jangan gunakan kandungan ini sebagai hasilnya.

(3) Pandang ke belakang ke hadapan

Kandungan yang berjaya dipadankan dengan pandangan ke belakang mesti berada di hadapan kandungan yang hendak dipadankan.

Sebagai contoh, ungkapan biasa berikut boleh memadankan tarikh di mana tahun mendahului bulan dan hari:

/(?<=d{2}(0[1-9]|1[0-2])(0[1-9]|[1-2][0-9]|3[01]))d{4}/

Di mana, "(?<=d{2}(0[1- 9 ]|1[0-2])(0[1-9]|1-2|3[01]))" bermaksud melihat ke hadapan, memadankan ungkapan biasa bulan dan hari, dengan itu memadankan tahun, dan bukan Bulan dan hari sebagai hasilnya.

(4) Pandang balik negatif

Kandungan yang berjaya dipadankan dengan pandang belakang negatif mestilah tidak berada di hadapan kandungan yang hendak dipadankan.

Sebagai contoh, ungkapan biasa berikut boleh memadankan semua baris kecuali yang bermula dengan .:

/(?<!^).w+/

Di mana, "(?

4. Kesimpulan

Ekspresi biasa memainkan peranan besar dalam pembangunan PHP, terutamanya dalam pemprosesan rentetan, pembersihan data, dsb., dan ia merupakan alat yang sangat diperlukan. Artikel ini memperkenalkan kandungan asas aplikasi lanjutan ungkapan biasa Pembangun secara beransur-ansur boleh belajar secara mendalam untuk meningkatkan lagi kemahiran PHP mereka.

Atas ialah kandungan terperinci Aplikasi lanjutan ungkapan biasa dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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