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:

javascriptlet str = 'abab123';
let res = str.match(/(ab)+([1-9]+)/);

Sonuç olarak, yakalama gruplarımızda aşağıdakiler olacaktır:

javascriptconsole.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:

javascriptlet str = 'abab123';
let res = str.match(/(?:ab)+([1-9]+)/);

Sonuç olarak, ilk yakalama grubumuzda sayımız olacaktır:

javascriptconsole.log(res[1]); // '123' yazdırır