Rumah >pembangunan bahagian belakang >tutorial php >Padanan corak menggunakan PHP dan Ungkapan Biasa

Padanan corak menggunakan PHP dan Ungkapan Biasa

WBOY
WBOYasal
2023-06-13 15:29:24741semak imbas

Pemadanan corak ialah operasi yang sangat biasa dalam bahasa pengaturcaraan moden. Ia digunakan untuk mencari bahagian rentetan yang sepadan dengan peraturan tertentu. Dalam PHP, ungkapan biasa sangat mudah untuk padanan corak. Dalam artikel ini, kami akan membincangkan padanan corak menggunakan PHP dan ungkapan biasa.

Pertama, kita perlu memahami apa itu ungkapan biasa. Ungkapan biasa ialah bahasa yang digunakan untuk padanan corak. Ia boleh digunakan untuk mencari, menggantikan, mengesahkan dan mengekstrak bahagian tertentu rentetan. Ungkapan biasa terdiri daripada beberapa aksara dan aksara khas. Aksara ini digunakan untuk memadankan rentetan.

Dalam PHP, kita boleh menggunakan fungsi preg_match() untuk melaksanakan padanan ungkapan biasa. Berikut ialah contoh:

$string = "This is a test string.";
$pattern = "/test/i";
preg_match($pattern, $string, $matches);
print_r($matches);

Dalam contoh di atas, $string ialah rentetan untuk dicari. $pattern ialah ungkapan biasa. Dalam contoh ini, kami menggunakan "/test/i" sebagai ungkapan biasa. Ini bermakna kami sedang mencari "ujian" dalam rentetan, di mana "i" bermaksud tidak sensitif huruf besar-besaran. Akhir sekali, $matches ialah tatasusunan yang mengandungi semua hasil padanan. Dalam kes ini, ia sepatutnya mengeluarkan:

Array
(
    [0] => test
)

Jika tiada rentetan yang sepadan ditemui, tatasusunan $matches akan kosong.

Sekarang, mari kita lihat aksara paling asas dalam ungkapan biasa.

  • .: Padankan mana-mana aksara
  • ^: Padankan permulaan rentetan
  • $: Padankan hujung rentetan
  • [] : Padankan Mana-mana aksara dalam kurungan
  • [a-z]: Padankan mana-mana aksara antara a - z
  • 1: Padankan apa-apa kecuali a - z Mana-mana aksara di luar
  • (): Padan dengan ungkapan dalam kurungan

Berikut ialah contoh untuk memadankan poskod (kod pos):

$string = "12345-6789";
$pattern = "/^[0-9]{5}(-[0-9]{4})?$/";
preg_match($pattern, $string, $matches);
print_r($matches);

Dalam contoh di atas, kami menggunakan beberapa aksara berbeza:

  • ^: mewakili permulaan rentetan
  • [0-9]{5}: sepadan dengan 5 nombor
  • (-[0-9]{4})? : Memadankan tanda sempang pilihan dan 4 digit
  • $ : Menunjukkan penghujung rentetan

Ungkapan biasa ini boleh sepadan dengan zip kod dalam format berikut:

  • 12345
  • 12345-6789

Kini, kami telah mempelajari pengetahuan yang mencukupi, anda boleh mula menulis skrip yang lebih kompleks . Berikut ialah contoh untuk mencari semua fail PHP dalam folder dan menyenaraikan semua fungsi dan kaedah di dalamnya:

$dir = "./";
$files = scandir($dir);

foreach ($files as $file) {
    if (preg_match("/.php$/", $file)) {
        $content = file_get_contents($file);
        preg_match_all("/(function|public function|private function|protected function|method|public method|private method|protected method) ([a-zA-Z0-9_]+)/", $content, $matches);
        echo "In $file:
";
        foreach ($matches[2] as $match) {
            echo "- $match()
";
        }
    }
}

Dalam contoh di atas, kami telah menggunakan fungsi preg_match_all(). Fungsi ini serupa dengan fungsi preg_match(), kecuali ia mencari semua padanan dan bukannya padanan pertama sahaja. Kami juga menggunakan ungkapan biasa untuk memadankan semua fungsi dan kaedah. Dalam contoh ini, kami hanya akan menyenaraikan fungsi dan kaedah awam, peribadi dan dilindungi.

Kami telah melihat cara melakukan padanan corak menggunakan PHP dan ungkapan biasa. Teknik ini sangat berkuasa dan boleh digunakan untuk pelbagai tujuan, daripada padanan rentetan ringkas kepada pengesahan data yang kompleks. Jika anda belum mencuba menggunakan ungkapan biasa lagi, kami menggalakkan anda meluangkan sedikit masa untuk mempelajarinya dan mula menggunakannya, kerana ia boleh membantu anda menulis kod yang lebih cekap dan fleksibel.


  1. a-z

Atas ialah kandungan terperinci Padanan corak menggunakan PHP dan Ungkapan Biasa. 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