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-дан кўп (кира оқа) учрайдиган, топадиган регуляр ифода ёзинг.