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