Rumah > pembangunan bahagian belakang > tutorial php > 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
Lepaskan: 2024-11-11 20:47:02
asal
969 orang telah melayarinya

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}
Salin selepas log masuk

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})?
Salin selepas log masuk

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})?
Salin selepas log masuk

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!

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