JavaScriptтегин регулярдык туюнтмаларындагы кайчылаш кашаалар
'+', '*', '?' операторлору
жакшы, бирок, алардын жардамы менен кайталоонун
так санын көрсөтүү мүмкүн эмес. Бул учурда
сизге {} оператору жардам берет.
Ал төмөнкүдөй иштейт: {5}
- беш жолу кайталоо, {2,5} – экиден бешке чейин кайталанат
(экөө тең камтылган), {2,}
- эки жана андан көп жолу кайталанат. Төмөнкү варианттын -
{,2}
- жок экенине көңүл бургула. Мисалдарды карагыла:
Мисал
Бул мисалда издөө шаблону төмөнкүдөй көрүнөт:
тамга 'x', тамга 'a' бир
же эки жолу, тамга 'x':
let str = 'xx xax xaax xaaax';
let res = str.replace(/xa{1,2}x/g, '!');
Натыйжада өзгөрмөгө төмөнкүдөй жазылат:
'xx ! ! xaaax'
Мисал
Бул мисалда издөө шаблону төмөнкүдөй көрүнөт:
тамга 'x', тамга 'a' эки
жолу жана андан көп, тамга 'x':
let str = 'xx xax xaax xaaax';
let res = str.replace(/xa{2,}x/g, '!');
Натыйжада өзгөрмөгө төмөнкүдөй жазылат:
'xx xax ! !'
Мисал
Бул мисалда издөө шаблону төмөнкүдөй көрүнөт:
тамга 'x', тамга 'a' үч
жолу, тамга 'x':
let str = 'xx xax xaax xaaax';
let res = str.replace(/xa{3}x/g, '!');
Натыйжада өзгөрмөгө төмөнкүдөй жазылат:
'xx xax xaax !'
Мисал
Бул мисалда издөө шаблону төмөнкүдөй көрүнөт:
тамга 'a' он жолу:
let str = 'aaa aaaaaaaaaa aaa';
let res = str.replace(/a{10}/g, '!');
Натыйжада өзгөрмөгө төмөнкүдөй жазылат:
'aaa ! aaa'
Мисал
Бул мисалда коддун автору төмөнкүдөй шаблонду каалады:
тамга 'x', тамга 'a' үч
жолудан аз же андай, тамга 'x',
бирок, тилекке каршы, мындай - {,3} - иштей бербейт.
Так көрсөтүү керек:
let str = 'xx xax xaax xaaax';
let res = str.replace(/xa{1,3}x/g, '!');
Натыйжада өзгөрмөгө төмөнкүдөй жазылат:
'xx ! ! !'
Мисал
Нөл дагы уруксаттуу:
let str = 'xx xax xaax xaaax';
let res = str.replace(/xa{0,3}x/g, '!');
Натыйжада өзгөрмөгө төмөнкүдөй жазылат:
'! ! ! !'
Практикалык маселелер
Төмөнкү сап берилди:
let str = 'aa aba abba abbba abbbba abbbbba';
Төмөнкү саптарды гана таба турган регулярдык туюнтма жазыңыз:
'abba', 'abbba', 'abbbba'.
Төмөнкү сап берилди:
let str = 'aa aba abba abbba abbbba abbbbba';
Төмөнкүдөй саптарды таба турган регулярдык туюнтма жазыңыз:
'aba' түрүндөгү, мында 'b' тамгасы
3-тен аз жолу кездешет (камтылган).
Төмөнкү сап берилди:
let str = 'aa aba abba abbba abbbba abbbbba';
Төмөнкүдөй саптарды таба турган регулярдык туюнтма жазыңыз:
'aba' түрүндөгү, мында 'b' тамгасы
4-тен көп жолу кездешет (камтылган).