Таңбаларды қайталау операторлары

Кейбір жағдайларда таңбаның белгілі бір рет қайталанатынын көрсету қажет болады. Егер қайталау дәл саны белгісіз болса, онда оны бірнеше рет жазсаңыз болады - 'aaaa'. Бірақ мынаны айту қажет болса не істеу керек: бір немесе одан да көп рет қайталау?

Бұл үшін қайталау операторлары (квантификаторлар) бар: қосу + (бір немесе одан да көп рет), жұлдызша * (нөл немесе одан да көп рет) және сұрақ белгісі ? (нөл немесе бір рет). Бұл операторлар өздерінен бұрын тұрған таңбаға әсер етеді.

Осы операторлардың жұмысын мысалдар арқылы қарастырайық.

Мысал

<'x' әрпі, <'a' әрпі бір немесе одан да көп рет, <'x' әрпі үлгісі бойынша барлық ішкі жолдарды табайық:

pythontxt = 'xx xax xaax xaaax xbx'
res = re.sub('xa+x', '!', txt)

print(res)

Кодты орындау нәтижесі:

python'xx ! ! ! xbx'

Мысал

<'x' әрпі, <'a' әрпі нөл немесе одан да көп рет, <'x' әрпі үлгісі бойынша барлық ішкі жолдарды табайық:

pythontxt = 'xx xax xaax xaaax xbx'
res = re.sub('xa*x', '!', txt)

print(res)

Кодты орындау нәтижесі:

python'! ! ! ! xbx'

Мысал

<'x' әрпі, <'a' әрпі нөл немесе бір рет, <'x' әрпі үлгісі бойынша барлық ішкі жолдарды табайық:

pythontxt = 'xx xax xaax xbx'
res = re.sub('xa?x', '!', txt)

print(res)

Кодты орындау нәтижесі:

python'! ! xaax xbx'

Практикалық есептер

Задание 1

Мына жол берілген:

pythontxt = 'aa aba abba abbba abca abea'

'aba', 'abba', 'abbba' жолдарын табатын регулярды өрнек жазыңыз: <'a' әрпі, <'b' әрпі кез келген рет, <'a' әрпі.

Задание 2

Мына жол берілген:

pythontxt = 'aa aba abba abbba abca abea'

'aa', 'aba', 'abba', 'abbba' жолдарын табатын регулярды өрнек жазыңыз: <'a' әрпі, <'b' әрпі кез келген рет (соның ішінде еш рет емес), <'a' әрпі.

Задание 3

Мына жол берілген:

pythontxt = 'aa aba abba abbba abca abea'

'aa', 'aba' жолдарын табатын регулярды өрнек жазыңыз: <'a' әрпі, <'b' әрпі бір рет немесе еш рет, <'a' әрпі.

Задание 4

Мына жол берілген:

pythontxt = 'aa aba abba abbba abca abea'

'aa', 'aba', 'abba', 'abbba' жолдарын табатын, 'abca' және 'abea' жолдарын қоспайтын регулярды өрнек жазыңыз.