JavaScript'te Düzenli İfadelerde exec Metodu
exec metodu, bir dize içinde arama yapar.
Sonuç olarak, bulunan alt dize ve onun grupları (capturing groups) döndürülür.
Bu metodun her bir sonraki çağrısı,
bir önceki bulunan alt dizinin bittiği yerden
aramaya başlayacaktır.
Bir örnek üzerinde inceleyelim. Şu dizimiz olduğunu varsayalım:
let str = '12 34 56';
Şu düzenli ifademiz olduğunu varsayalım:
let reg = /\d+/g;
Metodumuzu dizimiz için sırayla çağıralım:
let res1 = reg.exec(str);
console.log(res1[0]); // 12
let res2 = reg.exec(str);
console.log(res2[0]); // 34
let res3 = reg.exec(str);
console.log(res3[0]); // 56
Üç çağrıdan sonra, dizimizde düzenli ifadeyle
eşleşme kalmadığı için, metodun bir sonraki
çağrısı null döndürecektir:
let res4 = reg.exec(str);
console.log(res4); // null
Metodun bu özelliğini bir döngü içinde kullanmak uygundur:
let str = '12 34 56';
let reg = /\d+/g;
let res;
while (res = reg.exec(str)) {
console.log(res); // [12], [34], [56]
}
Sadece eşleşmeyi bulmakla kalmayıp, onu gruplara da ayırabiliriz:
let str = '12 34 56';
let reg = /(\d)(\d)/g;
let res;
while (res = reg.exec(str)) {
console.log(res); // [12, 1, 2], [34, 3, 4], [56, 5, 6]
}
Şu dize verilmiştir:
let str = '12:37:57 15:48:58 17:59:59';
İçindeki tüm zaman alt dizilerini bulun ve her bulunan için saat, dakika ve saniyeleri gruplara ayırın.