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

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

Barbara Streisand
Lepaskan: 2024-12-17 05:04:26
asal
184 orang telah melayarinya

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

Memahami Perbezaan Antara Pengkuantiti ' ' dan '*' dalam Ungkapan Biasa

Apabila bekerja dengan ungkapan biasa (regex) dalam PHP menggunakan fungsi preg_match, pengaturcara mungkin menghadapi dua pengkuantiti biasa: ' ' dan '*'. Pengkuantiti ini menentukan bilangan kali corak boleh muncul dalam padanan. Walau bagaimanapun, perbezaan halus wujud antara tingkah laku mereka.

Perbezaan antara ' ' dan '*':

  • ' ' (tambah pengkuantiti): Padan dengan satu atau lebih kejadian bagi ungkapan sebelumnya.
  • '*' (pengkuantiti bintang): Padan dengan sifar atau lebih kejadian bagi ungkapan sebelumnya (termasuk tiada kejadian).

Rakus vs. Tidak Tamak Padanan:

Secara lalai, pengkuantiti adalah tamak. Ini bermakna ia sepadan dengan subrentetan terbesar yang mungkin memenuhi ungkapan, menggunakan seberapa banyak aksara yang boleh. Sebagai contoh, menggunakan regex a.*b, ia akan sepadan dengan keseluruhan rentetan "abab" kerana pengkuantiti '.' adalah tamak.

Menjadikan Pengkuantiti Tidak Tamak:

Penambahan '?' watak (?) selepas pengkuantiti menukar tingkah lakunya kepada "tidak tamak" atau "malas." Ini memaksa pengkuantiti untuk memadankan subrentetan terkecil mungkin yang memenuhi ungkapan, bermula dari penghujung rentetan dan bergerak ke arah permulaan:

  • a.*?b akan sepadan dengan "ab" dalam "abab " kerana pengkuantiti bintang ialah tidak tamak.

Contoh:

Pertimbangkan rentetan berikut: "abab"

  • a.*?b padanan: " ab" (tidak tamak)
  • a.*b padanan: "abab" (tamak)

Nota Tambahan:

  • Perbezaan halus antara pengkuantiti ' ' dan '*' menjadi jelas apabila ungkapan yang dikuantifikasi muncul beberapa kali dalam satu corak.
  • Adalah penting untuk memahami pengkuantiti ini untuk menulis ungkapan biasa yang cekap dan tepat dalam PHP.
  • Alat dalam talian seperti Regexr boleh membantu menguji dan menggambarkan ungkapan biasa, menjadikannya lebih mudah untuk memahami gelagat pengkuantiti.

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan