Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah saya boleh memadankan corak dengan bilangan kejadian tertentu menggunakan ungkapan biasa?

Bagaimanakah saya boleh memadankan corak dengan bilangan kejadian tertentu menggunakan ungkapan biasa?

Susan Sarandon
Susan Sarandonasal
2024-11-11 20:47:02896semak imbas

How can I match a pattern with a specific number of occurrences using regular expressions?

Mengira Kejadian Tepat: Regex untuk Masa Tertentu

Dalam ungkapan biasa, kita sering menghadapi corak yang memerlukan bilangan kejadian tertentu. Walau bagaimanapun, tiada pengkuantiti tunggal yang memenuhi keperluan untuk memadankan elemen tepat n atau m kali.

Pertimbangkan ungkapan biasa:

X{n}|X{m}

Ungkapan ini cuba menguji kejadian unsur X tepat n atau m kali. Walau bagaimanapun, ia menggunakan gabungan pengkuantiti, yang mungkin tidak cekap.

Pendekatan Alternatif

Pendekatan alternatif untuk mengukur kejadian yang tepat ialah:

X{m}(X{k})?

Di sini:

  • X{m} memastikan kejadian unsur X tepat m kali.
  • (X{k})? ialah kumpulan pilihan yang memadankan elemen X dengan tambahan k kali, dengan k ialah perbezaan antara n dan m (iaitu, k = n - m).

Contoh:

Untuk memadankan corak di mana unsur "A" berlaku tepat 3 atau 5 kali, kita boleh menggunakan regex berikut:

A{3}(A{2})?

regex ini akan memadankan rentetan seperti "AAA" (3 kejadian ) atau "AAAAA" (5 kejadian) tetapi bukan "AA" atau "AAAAAAA".

Kesimpulan

Walaupun tiada pengkuantiti tunggal untuk memadankan n atau m tepat kejadian, gabungan pendakap {n} dan {m} (untuk n != m) atau penggunaan kumpulan pilihan boleh mencapai fungsi ini dengan berkesan dalam ungkapan biasa.

Atas ialah kandungan terperinci Bagaimanakah saya boleh memadankan corak dengan bilangan kejadian tertentu menggunakan 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