Таңбаларды қайталау операторлары
Кейбір жағдайларда біз таңбаның белгілі бір рет қайталанатынын көрсеткіміз келеді.
Егер біз қайталаулардың нақты санын білсек, онда оны бірнеше рет жазсақ болады
- /aaaa/. Бірақ егер біз мынаны айтқымыз келсе: бір немесе одан да көп рет қайталау?
Бұл үшін қайталау операторлары (квантификаторлар) бар: плюс + (бір немесе одан да көп рет),
жұлдызша * (нөл немесе одан да көп рет) және
сұрақ белгісі ? (нөл немесе бір рет). Бұл
операторлар олардың алдында тұрған таңбаға әсер етеді.
Мысалдар арқылы осы операторлардың жұмысын қарастырайық.
Мысал
'x' әрпі, 'a' әрпі бір немесе одан да көп рет,
'x' әрпі болатын барлық ішкі жолдарды табайық:
let str = 'xx xax xaax xaaax xbx';
let res = str.replace(/xa+x/g, '!');
Нәтижесінде айнымалыға мыналар жазылады:
'xx ! ! ! xbx'
Мысал
'x' әрпі, 'a' әрпі нөл немесе одан да көп рет,
'x' әрпі болатын барлық ішкі жолдарды табайық:
let str = 'xx xax xaax xaaax xbx'
let res = str.replace(/xa*x/g, '!');
Нәтижесінде айнымалыға мыналар жазылады:
'! ! ! ! xbx'
Мысал
'x' әрпі, 'a' әрпі нөл немесе бір рет,
'x' әрпі болатын барлық ішкі жолдарды табайық:
let str = 'xx xax xaax xbx';
let res = str.replace(/xa?x/g, '!');
Нәтижесінде айнымалыға мыналар жазылады:
'! ! xaax xbx'
Практикалық есептер
Мына жол берілген:
let str = 'aa aba abba abbba abca abea';
'aba', 'abba', 'abbba' жолдарын табатын
регулярды өрнек жаз: 'a' әрпі, 'b' әрпі
кез келген рет, 'a' әрпі.
Мына жол берілген:
let str = 'aa aba abba abbba abca abea';
'aa', 'aba', 'abba',
'abbba' жолдарын табатын регулярды өрнек жаз:
'a' әрпі, 'b' әрпі кез келген рет (соның ішінде
бір рет те болмауы мүмкін), 'a' әрпі.
Мына жол берілген:
let str = 'aa aba abba abbba abca abea';
'aa', 'aba' жолдарын табатын регулярды өрнек жаз:
'a' әрпі, 'b' әрпі бір рет немесе
бір рет те емес, 'a' әрпі.
Мына жол берілген:
let str = 'aa aba abba abbba abca abea';
'aa', 'aba', 'abba',
'abbba' жолдарын тауып, 'abca'
және 'abea' жолдарын қоспайтын регулярды өрнек жаз.