JavaScript-da Qeyri-saxlayan Mötərizələr
Mötərizələr ( ) iki funksiya yerinə yetirir -
simvolların qruplaşdırılması və qrup (capturing) funksiyası. Bəs
biz qruplaşdırmaq istəyirik, amma qrupa salmaq istəmiriksə?
Bu problemi həll etmək üçün xüsusi
qeyri-saxlayan mötərizələr (?: )
ixtira edilmişdir - onlar qruplaşdırır, lakin qrupa salmır.
Nümunə
Aşağıdakı nümunədə birinci mötərizələr bizə qruplaşdırmaq üçün lazımdır, ikincilər isə - qrup üçün. Lakin, hər iki mötərizə məlumatı qrupa saxlayır:
let str = 'abab123';
let res = str.match(/(ab)+([1-9]+)/);
Nəticədə bizim qruplarımızda aşağıdakılar olacaq:
console.log(res[0]); // 'abab123' çap edəcək
console.log(res[1]); // 'ab' çap edəcək
console.log(res[2]); // '123' çap edəcək
Nümunə
Gəlin elə edək ki, birinci cüt mötərizə yalnız qruplaşdırsın, lakin qrupa salmasın:
let str = 'abab123';
let res = str.match(/(?:ab)+([1-9]+)/);
Nəticədə birinci qrupda bizim rəqəlimiz olacaq:
console.log(res[1]); // '123' çap edəcək