Rumah >pembangunan bahagian belakang >tutorial php >Apakah Perbezaan Antara Pengkuantiti `` dan `*` dalam Ungkapan Biasa?

Apakah Perbezaan Antara Pengkuantiti `` dan `*` dalam Ungkapan Biasa?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-22 18:25:29665semak imbas

What's the Difference Between the ` ` and `*` Quantifiers in Regular Expressions?

Memahami Perbezaan antara Pengkuantiti Ungkapan Biasa Plus ( ) dan Bintang (*)

Dalam fungsi preg_match PHP, ungkapan biasa menggunakan pengkuantiti, seperti sebagai tambah ( ) dan bintang (*), untuk menentukan bilangan kemunculan corak tertentu harus dipadankan. Perbezaan antara kedua-dua pengkuantiti ini terletak pada kelakuan mereka dan padanan yang terhasil yang mereka hasilkan.

Tambahan ( ) Pengkuantiti:

  • Padan dengan satu atau lebih kejadian bagi ungkapan sebelumnya.
  • Adalah tamak secara lalai, bermakna ia sepadan dengan seberapa banyak aksara mungkin.

Bintang (*) Pengkuantiti:

  • Padan dengan sifar atau lebih kejadian bagi ungkapan sebelumnya.
  • Juga tamak secara lalai, tetapi boleh dibuat "tidak tamak" dengan menambah tanda soal (?) selepas pengkuantiti.

Contoh: Pengkuantiti Tamak vs. Tidak Tamak

Pertimbangkan contoh berikut dengan rentetan "abab":

  • a.*b: Perlawanan tamak akan sepadan dengan "abab" secara keseluruhan rentetan.
  • a.*?b: Padanan tidak tamak hanya akan sepadan dengan bahagian "ab" pertama rentetan, menghasilkan dua padanan.

Menjadikan Pengkuantiti Tidak Tamak

Menambah tanda soal (?) selepas pengkuantiti menukar tingkah lakunya daripada tamak kepada tidak tamak. Pengkuantiti tidak tamak memadankan sesedikit aksara yang mungkin, membawa kepada hasil yang berbeza berbanding dengan pengkuantiti tamak. Ini boleh berguna dalam senario tertentu yang memerlukan pemadanan dengan kemungkinan aksara minimum.

Atas ialah kandungan terperinci Apakah Perbezaan Antara Pengkuantiti `` dan `*` dalam 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