Invertendo conjuntos de caracteres em regex
Usando o acento circunflexo '^' no início
de colchetes, você pode inverter a
correspondência. Se, por exemplo, o comando [ab]
encontra a letra 'a' ou 'b', então
o comando [^ab] encontrará todos
os caracteres, exceto 'a' e 'b'.
Exemplo
Neste exemplo, o padrão de busca é
o seguinte: letra 'x', depois NÃO a letra
'a', nem 'b', nem 'c',
depois a letra 'z':
txt = 'xaz xbz xcz xez'
res = re.sub('x[^abc]z', '!', txt)
print(res)
O resultado da execução do código:
'xax xbx xcx !'
Exemplo
Neste exemplo, o padrão de busca é
o seguinte: letra 'x', depois NÃO uma letra
latina minúscula, depois a letra 'z':
txt = 'xaz xbz x1z xCz'
res = re.sub('x[^a-z]z', '!', txt)
print(res)
O resultado da execução do código:
'xaz xbz ! !'
Problemas práticos
Escreva uma expressão regular que encontre strings
seguindo o padrão: dígito 1, depois um caractere
que não seja 'e' nem 'x', dígito
2.
Escreva uma expressão regular que encontre strings
seguindo o padrão: letra 'x', depois NÃO
um dígito de 2 a 7, letra
'z'.
Escreva uma expressão regular que encontre strings
seguindo o padrão: letra 'x', depois NÃO
uma letra latina maiúscula de 1 ou mais
vezes, letra 'z'.
Escreva uma expressão regular que encontre strings
seguindo o padrão: letra 'x', depois NÃO
uma letra latina maiúscula ou minúscula e
nem um dígito de 1 a 5 de 1
ou mais vezes, letra 'z'.