JavaScript регляр ифодаларидаги 'или' командаси

Ушбу дарсда биз '|' командасини кўриб чиқамиз, у [ ] командасига нисбатан кучлирок 'или' вариантини ифодалайди. Ушбу команда регуляр ифодани бир нечта қисмларга бўлиш имконини беради. Бунда изланаётган нарса ёки регуляр ифоданинг бир қисмига, ёки бошқасига тўғри келади. Келгила, мисолларда кўрамиз.

Мисол

Ушбу мисолда излаш намунаси мана бу: учта 'a' ҳарфи ёки учта 'b' ҳарфи:

javascriptlet str = 'aaa bbb abb';
let res = str.replace(/a{3}|b{3}/g, '!');

Натижада ўзгарувчига куйидагилар ёзилади:

javascript'! ! abb'

Мисол

Ушбу мисолда излаш намунаси мана бу: учта 'a' ҳарфи ёки 1 ва ундан кўп 'b' ҳарфлари:

javascriptlet str = 'aaa bbb bbbb bbbbb axx';
let res = str.replace(/a{3}|b+/g, '!');

Натижада ўзгарувчига куйидагилар ёзилади:

javascript'! ! ! ! axx'

Мисол

Ушбу мисолда излаш намунаси мана бу: бир ёки бир нечта ҳарф ёки учта рақам:

javascriptlet str = 'a ab abc 1 12 123';
let res = str.replace(/[a-z]+|\d{3}/g, '!');

Натижада ўзгарувчига куйидагилар ёзилади:

javascript'! ! ! 1 12 !'

Мисол

Вертикал чизиқ регуляр ифодани иккига эмас, балки istalgan miqdordagi qismlarga бўлиши мумкин:

javascriptlet str = 'aaa bbb ccc ddd';
let res = str.replace(/a+|b+|c+/g, '!');

Натижада ўзгарувчига куйидагилар ёзилади:

javascript'! ! ! ddd'

Мисол

Агар вертикал чизиқ айлана скобкалар ичида турса, унда 'или' фақатгина ушбу скобкалар ичидагина ишлайди.

Мисол учун куйидаги намуна бўйича сатрларни топамиз: бошида 'a', ёки 'b' бир ёки бир нечта марта турса, keyin esa иккита 'x' ҳарфи турсин:

javascriptlet str = 'axx bxx bbxx exx';
let res = str.replace(/(a|b+)xx/g, '!');

Натижада ўзгарувчига куйидагилар ёзилади:

javascript'! ! ! exx'

Амалий машқлар

Задание 1

Сатр берилган:

javascriptlet str = 'aeeea aeea aea axa axxa axxxa';

Шаблон бўйича сатрларни топадиган регуляр ифода ёзинг: четларида 'a' ҳарфлари туради, уларнинг ўртасида - ёки 'e' ҳарфи istalgan miqdorda ёки 'x' ҳарфи istalgan miqdorda.

Задание 2

Сатр берилган:

javascriptlet str = 'aeeea aeea aea axa axxa axxxa';

Шаблон бўйича сатрларни топадиган регуляр ифода ёзинг: четларида 'a' ҳарфлари туради, уларнинг ўртасида - ёки 'e' ҳарфи икки марта ёки 'x' ҳарфи istalgan miqdorda.