Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Boleh Menggunakan Regex untuk Mencari Padanan Bertindih dalam Rentetan?
Padanan Rentetan Bertindih dengan Regex
Dalam rentetan "12345," menggunakan ".match(/d{3}/g)" sebaiknya mengembalikan tiga padanan: "123," "234," dan "345." Walau bagaimanapun, hanya satu perlawanan ("123") diperoleh.
Sebab:
Bendera global "g" dalam regex menggunakan tiga digit dan memajukan indeks ke kedudukan selepas perlawanan pertama. Ini bermakna apabila regex cuba memadankan subrentetan seterusnya, indeks sudah berada pada kedudukan 3, dengan berkesan melangkau padanan bertindih yang tinggal.
Penyelesaian: Penegasan Lebar Sifar
Penegasan lebar sifar, khususnya pandangan positif dengan kumpulan penangkap, boleh digunakan untuk memadankan semua kedudukan dalam rentetan input. Teknik ini melibatkan:
Contoh dalam JavaScript:
var re = /(?=(\d{3}))/g; console.log(Array.from('12345'.matchAll(re), x => x[1]));
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan Regex untuk Mencari Padanan Bertindih dalam Rentetan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!