Rumah >pembangunan bahagian belakang >tutorial php >Pengkuantiti Regex: Apakah Perbezaan Antara ` ` dan `*`?

Pengkuantiti Regex: Apakah Perbezaan Antara ` ` dan `*`?

Barbara Streisand
Barbara Streisandasal
2024-12-26 01:43:10242semak imbas

Regex Quantifiers: What's the Difference Between ` ` and `*`?

Pengkuantiti: Memahami Perbezaan Antara dan * dalam Regex

Regex, alat yang berkuasa untuk pemadanan dan manipulasi teks, menggunakan pengkuantiti untuk menentukan bilangan kemunculan corak dalam rentetan. Perbezaan antara pengkuantiti dan * terletak pada gelagat pemadanan tamak vs. tidak tamak mereka.

Pengkuantiti bermaksud ungkapan sebelumnya mesti muncul satu kali atau lebih, manakala pengkuantiti * membenarkannya muncul sifar atau lebih kali.

Secara lalai, pengkuantiti adalah tamak, bermakna ia sepadan dengan seberapa banyak aksara yang mungkin. Walau bagaimanapun, melampirkan ? selepas pengkuantiti menukar tingkah laku kepada "tidak tamak", menjadikannya sepadan dengan sesedikit mungkin aksara.

Contoh: Padanan Tamak vs. Tidak Tamak

Pertimbangkan rentetan "abab " dan ungkapan biasa:

  • a.*b: Padan dengan keseluruhan rentetan "abab" (preg_match_all akan mengembalikan satu perlawanan)
  • a.*?b: Padanan hanya dengan "ab" permulaan (preg_match_all akan mengembalikan dua perlawanan)

Pengkuantiti yang tamak dalam contoh pertama sepadan dengan seberapa banyak aksara yang mungkin, manakala yang tidak tamak pengkuantiti dalam contoh kedua hanya sepadan dengan aksara penting untuk memenuhi ungkapan.

Aplikasi:

Pengkuantiti yang tidak tamak boleh memberi manfaat apabila anda ingin menangkap subrentetan tertentu atau mengelakkan memadankan watak yang tidak diingini. Contohnya, apabila menghuraikan teg HTML, pengkuantiti tamak boleh memadankan teg, termasuk kandungannya, manakala pengkuantiti tidak tamak memastikan ia hanya sepadan dengan teg itu sendiri.

Atas ialah kandungan terperinci Pengkuantiti Regex: Apakah Perbezaan Antara ` ` dan `*`?. 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