Operadores de repetição de caracteres em regex

Há situações em que é necessário indicar que um caractere se repete um determinado número de vezes. Se o número exato de repetições é desconhecido, pode-se simplesmente escrevê-lo várias vezes - 'aaaa'. Mas o que fazer se for preciso dizer algo como: repetir uma ou mais vezes?

Para isso existem os operadores (quantificadores) de repetição: o sinal de mais + (uma ou mais vezes), o asterisco * (zero ou mais vezes) e o ponto de interrogação ? (zero ou uma vez). Esses operadores atuam sobre o caractere que os precede.

Vamos ver o funcionamento desses operadores com exemplos.

Exemplo

Vamos encontrar todas as substrings pelo padrão letra 'x', letra 'a' uma ou mais vezes, letra 'x':

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

print(res)

Resultado da execução do código:

python'xx ! ! ! xbx'

Exemplo

Vamos encontrar todas as substrings pelo padrão letra 'x', letra 'a' zero ou mais vezes, letra 'x':

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

print(res)

Resultado da execução do código:

python'! ! ! ! xbx'

Exemplo

Vamos encontrar todas as substrings pelo padrão letra 'x', letra 'a' zero ou uma vez, letra 'x':

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

print(res)

Resultado da execução do código:

python'! ! xaax xbx'

Problemas práticos

Задание 1

Dada a string:

pythontxt = 'aa aba abba abbba abca abea'

Escreva uma expressão regular que encontre as strings 'aba', 'abba', 'abbba' seguindo o padrão: letra 'a', letra 'b' qualquer número de vezes, letra 'a'.

Задание 2

Dada a string:

pythontxt = 'aa aba abba abbba abca abea'

Escreva uma expressão regular que encontre as strings 'aa', 'aba', 'abba', 'abbba' seguindo o padrão: letra 'a', letra 'b' qualquer número de vezes (incluindo zero vezes), letra 'a'.

Задание 3

Dada a string:

pythontxt = 'aa aba abba abbba abca abea'

Escreva uma expressão regular que encontre as strings 'aa', 'aba' seguindo o padrão: letra 'a', letra 'b' uma vez ou nenhuma, letra 'a'.

Задание 4

Dada a string:

pythontxt = 'aa aba abba abbba abca abea'

Escreva uma expressão regular que encontre as strings 'aa', 'aba', 'abba', 'abbba', sem capturar 'abca' e 'abea'.