Chaves em expressões regulares do Python
Os operadores '+', '*', '?'
são bons, no entanto, com eles não é possível especificar
um número concreto de repetições. Neste caso,
o operador {} virá em sua ajuda.
Ele funciona da seguinte forma: {5}
- cinco repetições, {2,5} – repete
de duas a cinco vezes (ambas inclusive), {2,}
- repete duas vezes ou mais. Veja os
exemplos:
Exemplo
Neste exemplo, o padrão de pesquisa é
o seguinte: letra 'x', letra 'a'
uma ou duas vezes, letra 'x':
txt = 'xx xax xaax xaaax'
res = re.sub('xa{1,2}x', '!', txt)
print(res)
Resultado da execução do código:
'xx ! ! xaaax'
Exemplo
Neste exemplo, o padrão de pesquisa é
o seguinte: letra 'x', letra 'a'
duas vezes ou mais, letra 'x':
txt = 'xx xax xaax xaaax'
res = re.sub('xa{2,}x', '!', txt)
print(res)
Resultado da execução do código:
'xx xax ! !'
Exemplo
Neste exemplo, o padrão de pesquisa é
o seguinte: letra 'x', letra 'a'
três vezes, letra 'x':
txt = 'xx xax xaax xaaax'
res = re.sub('xa{3}x', '!', txt)
print(res)
Resultado da execução do código:
'xx xax xaax !'
Exemplo
Neste exemplo, o padrão de pesquisa é
o seguinte: letra 'a' dez vezes:
txt = 'aaa aaaaaaaaaa aaa'
res = re.sub('a{10}', '!', txt)
print(res)
Resultado da execução do código:
'aaa ! aaa'
Exemplo
Neste exemplo, existe o seguinte padrão: letra
'x', letra 'a' três vezes ou menos,
letra 'x'. Para
implementá-lo, antes do número 3
não é necessário indicar um número, pode-se colocar
simplesmente uma vírgula:
txt = 'xx xax xaax xaaax'
res = re.sub('xa{,3}x', '!', txt)
print(res)
Resultado da execução do código:
'! ! ! !'
Exemplo
Zero antes de 3 também é permitido:
txt = 'xx xax xaax xaaax'
res = re.sub('xa{0,3}x', '!', txt)
print(res)
Resultado da execução do código:
'! ! ! !'
Problemas práticos
Dada a string:
txt = 'aa aba abba abbba abbbba abbbbba'
Escreva uma expressão regular que encontre as strings
'abba', 'abbba', 'abbbba'
e apenas elas.
Dada a string:
txt = 'aa aba abba abbba abbbba abbbbba'
Escreva uma expressão regular que encontre strings
do tipo 'aba', nas quais 'b'
ocorre menos de 3 vezes (inclusive).
Dada a string:
txt = 'aa aba abba abbba abbbba abbbbba'
Escreva uma expressão regular que encontre strings
do tipo 'aba', nas quais 'b'
ocorre mais de 4 vezes (inclusive).