JavaScript'te Yakalama Yapmayan Parantezler
Parantezler ( ) iki işlevi yerine getirir -
karakterleri gruplama ve yakalama grubu işlevi. Peki
ya gruplamamız gerekiyor ama yakalama grubuna koymamamız
gerekiyorsa?
Bu sorunu çözmek için özel
yakalama yapmayan parantezler (?: )
icat edilmiştir - bunlar gruplar, ancak yakalama grubuna koymaz.
Örnek
Aşağıdaki örnekte, ilk parantezler gruplama için, ikinci parantezler ise yakalama grubu için gereklidir. Ancak, her iki parantez türü de verileri yakalama grubuna kaydeder:
let str = 'abab123';
let res = str.match(/(ab)+([1-9]+)/);
Sonuç olarak, yakalama gruplarımızda aşağıdakiler olacaktır:
console.log(res[0]); // 'abab123' yazdırır
console.log(res[1]); // 'ab' yazdırır
console.log(res[2]); // '123' yazdırır
Örnek
İlk parantez çiftinin sadece gruplama yapmasını, ancak yakalama grubuna koymamasını sağlayalım:
let str = 'abab123';
let res = str.match(/(?:ab)+([1-9]+)/);
Sonuç olarak, ilk yakalama grubumuzda sayımız olacaktır:
console.log(res[1]); // '123' yazdırır