JavaScriptтегин регулярдык туюнтмаларындагы кайчылаш кашаалар

'+', '*', '?' операторлору жакшы, бирок, алардын жардамы менен кайталоонун так санын көрсөтүү мүмкүн эмес. Бул учурда сизге {} оператору жардам берет.

Ал төмөнкүдөй иштейт: {5} - беш жолу кайталоо, {2,5} – экиден бешке чейин кайталанат (экөө тең камтылган), {2,} - эки жана андан көп жолу кайталанат. Төмөнкү варианттын - {,2} - жок экенине көңүл бургула. Мисалдарды карагыла:

Мисал

Бул мисалда издөө шаблону төмөнкүдөй көрүнөт: тамга 'x', тамга 'a' бир же эки жолу, тамга 'x':

javascriptlet str = 'xx xax xaax xaaax';
let res = str.replace(/xa{1,2}x/g, '!');

Натыйжада өзгөрмөгө төмөнкүдөй жазылат:

javascript'xx ! ! xaaax'

Мисал

Бул мисалда издөө шаблону төмөнкүдөй көрүнөт: тамга 'x', тамга 'a' эки жолу жана андан көп, тамга 'x':

javascriptlet str = 'xx xax xaax xaaax';
let res = str.replace(/xa{2,}x/g, '!');

Натыйжада өзгөрмөгө төмөнкүдөй жазылат:

javascript'xx xax ! !'

Мисал

Бул мисалда издөө шаблону төмөнкүдөй көрүнөт: тамга 'x', тамга 'a' үч жолу, тамга 'x':

javascriptlet str = 'xx xax xaax xaaax';
let res = str.replace(/xa{3}x/g, '!');

Натыйжада өзгөрмөгө төмөнкүдөй жазылат:

javascript'xx xax xaax !'

Мисал

Бул мисалда издөө шаблону төмөнкүдөй көрүнөт: тамга 'a' он жолу:

javascriptlet str = 'aaa aaaaaaaaaa aaa';
let res = str.replace(/a{10}/g, '!');

Натыйжада өзгөрмөгө төмөнкүдөй жазылат:

javascript'aaa ! aaa'

Мисал

Бул мисалда коддун автору төмөнкүдөй шаблонду каалады: тамга 'x', тамга 'a' үч жолудан аз же андай, тамга 'x', бирок, тилекке каршы, мындай - {,3} - иштей бербейт. Так көрсөтүү керек:

javascriptlet str = 'xx xax xaax xaaax';
let res = str.replace(/xa{1,3}x/g, '!');

Натыйжада өзгөрмөгө төмөнкүдөй жазылат:

javascript'xx ! ! !'

Мисал

Нөл дагы уруксаттуу:

javascriptlet str = 'xx xax xaax xaaax';
let res = str.replace(/xa{0,3}x/g, '!');

Натыйжада өзгөрмөгө төмөнкүдөй жазылат:

javascript'! ! ! !'

Практикалык маселелер

Задание 1

Төмөнкү сап берилди:

javascriptlet str = 'aa aba abba abbba abbbba abbbbba';

Төмөнкү саптарды гана таба турган регулярдык туюнтма жазыңыз: 'abba', 'abbba', 'abbbba'.

Задание 2

Төмөнкү сап берилди:

javascriptlet str = 'aa aba abba abbba abbbba abbbbba';

Төмөнкүдөй саптарды таба турган регулярдык туюнтма жазыңыз: 'aba' түрүндөгү, мында 'b' тамгасы 3-тен аз жолу кездешет (камтылган).

Задание 3

Төмөнкү сап берилди:

javascriptlet str = 'aa aba abba abbba abbbba abbbbba';

Төмөнкүдөй саптарды таба турган регулярдык туюнтма жазыңыз: 'aba' түрүндөгү, мында 'b' тамгасы 4-тен көп жолу кездешет (камтылган).