Andaikan anda perlu mencari semua kejadian corak dalam rentetan, walaupun kejadian tersebut bertindih antara satu sama lain. Contohnya, diberikan rentetan "nnnn", anda ingin mengenal pasti padanan berikut:
<code>nn nnn nnn</code>
Walaupun ungkapan biasa tidak direka bentuk secara semulajadi untuk padanan bertindih seperti ini, terdapat beberapa penyelesaian yang berpotensi:
Satu pendekatan melibatkan penggunaan penegasan pandang ke hadapan, dilambangkan sebagai (?<=...)
Kaedah yang lebih langsung dan intuitif ialah menggunakan penegasan pandang ke hadapan: (?=nn)n. Corak ini mencari kehadiran "nn" selepas aksara "n" semasa, menghasilkan padanan pada permulaan setiap jujukan "nn".
Pendekatan lain ialah menggabungkan pandangan ke hadapan dengan menangkap kurungan: (n)(?=(n)). Formula ini menangkap "n" pertama dalam kumpulan(1) dan "n" kedua dalam kumpulan(2), memberikan fleksibiliti yang lebih besar untuk memadankan corak kompleks.
Dengan menggunakan teknik ini, anda boleh mencari padanan bertindih dengan cekap dalam corak ungkapan biasa, walaupun ia menyimpang daripada tujuan biasa ungkapan biasa.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Cari Padanan Regex Bertindih dalam Rentetan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!