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

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

Barbara Streisand
Barbara Streisandasal
2024-12-17 05:04:26231semak imbas

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!

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