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 !'

Мисал

Тик сызык регулярдуу туюнтманы эки эмес, каалаган санындагы бөлүктөргө бөлүүгө мүмкүндүк берет:

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

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

javascript'! ! ! ddd'

Мисал

Эгер тик сызык тегерек кашаанын ичинде турса, анда 'же' гана бул кашаанын ичинде иштейт.

Мисал үчүн, төмөнкү үлгү боюнча саптарды табалы: башында же 'a', же 'b' бир же андан көп жолу турат, андан кийин эки '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' тамгасы каалаган жолу же 'x' тамгасы каалаган жолу.

Задание 2

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

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

Төмөнкү үлгү боюнча саптарды таба турган регулярдуу туюнтма жазыңыз: четтеринде 'a' тамгасы турат, алардын ортосунда - же 'e' тамгасы эки жолу же 'x' тамгасы каалаган жолу.