O símbolo de acento circunflexo dentro de conjuntos em expressões regulares do Python
Como você sabe, o acento circunflexo dentro de [ ]
faz uma negação quando escrito no
início dos colchetes. Portanto, ele é um
caractere especial dentro desses colchetes. Para
obter o acento circunflexo como um caractere comum, é preciso
ou escapá-lo, ou removê-lo da primeira
posição.
Exemplo
No exemplo a seguir, o padrão de busca é:
o primeiro caractere é tudo exceto 'd',
depois duas letras 'x':
txt = 'axx bxx ^xx dxx'
res = re.sub('[^d]xx', '!', txt)
print(res)
Como resultado, será armazenado na variável o seguinte:
'! ! ! dxx'
Exemplo
Agora o padrão de busca é: o primeiro
caractere é 'd' ou '^',
depois duas letras 'x':
txt = 'axx bxx ^xx dxx'
res = re.sub('[d^]xx', '!', txt)
print(res)
Como resultado, será armazenado na variável o seguinte:
'axx bxx ! !'
Exemplo
Você pode não remover o acento circunflexo da primeira posição, e simplesmente escapá-lo usando a barra invertida, e ele passará a representar a si mesmo:
txt = 'axx bxx ^xx dxx'
res = re.sub('[\^d]xx', '!', txt)
print(res)
Como resultado, será armazenado na variável o seguinte:
'axx bxx ! !'
Problemas Práticos
Dada a string:
txt = '^xx axx ^zz bkk @ss'
Escreva uma expressão regular que encontrará as strings seguindo o padrão: acento circunflexo ou arroba, e então duas letras latinas.
Dada a string:
txt = '^xx axx ^zz bkk @ss'
Escreva uma expressão regular que encontrará as strings seguindo o padrão: NÃO é acento circunflexo e nem arroba, e depois duas letras latinas.
Dada a string:
txt = '^xx axx ^zz bkk'
Escreva uma expressão regular que encontrará as strings seguindo o padrão: não é acento circunflexo e nem espaço, e depois duas letras latinas.