Pular para o conteúdo

Como Usar Python Regex Replace?

[

Como substituir uma string em Python

por Ian Currie 3 Comentários basics best-practices

Em Python, o método .replace() e a função re.sub() são frequentemente usados para limpar o texto, removendo strings ou substrings ou substituindo-as. Neste tutorial, você irá desempenhar o papel de um desenvolvedor de uma empresa que fornece suporte técnico por meio de chat de texto individual. Você tem a tarefa de criar um script que sanitize o chat, removendo quaisquer dados pessoais e substituindo palavras ofensivas por emoji.

Você só tem uma transcrição muito curta do chat:

Texto

[support_tom] 2022-08-24T10:02:23+00:00 : Como posso ajudar?
[johndoe] 2022-08-24T10:03:15+00:00 : NÃO CONSIGO ACESSAR MINHA CONTA MALDITA
[support_tom] 2022-08-24T10:03:30+00:00 : Tem certeza de que não é o Caps Lock ativado?
[johndoe] 2022-08-24T10:04:03+00:00 : Droga! Você está certo!

Copiado!

Embora essa transcrição seja curta, ela é típica dos chats que os atendentes têm o tempo todo. Ela possui identificadores de usuários, marcas de tempo ISO e mensagens.

Neste caso, o cliente johndoe fez uma reclamação e a política da empresa é sanitizar e simplificar a transcrição, e depois encaminhá-la para avaliação independente. Sua tarefa é sanitizar a mensagem!

A primeira coisa que você quer fazer é se livrar de qualquer palavra ofensiva.

Como remover ou substituir uma string ou substring em Python

A maneira mais básica de substituir uma string em Python é usar o método .replace():

Python

>>> "Python Falso".replace("Falso", "Real")
'Python Real'

Copiado!

Como você pode ver, é possível encadear .replace() em qualquer string e fornecer ao método dois argumentos. O primeiro é a string que você deseja substituir e o segundo é a substituição.

Observação: Embora o shell do Python exiba o resultado de .replace(), a string em si permanece inalterada. Você pode ver isso mais claramente atribuindo sua string a uma variável:

Python

>>> nome = "Python Falso"
>>> nome.replace("Falso", "Real")
'Python Real'
>>> nome
'Python Falso'
>>> nome = nome.replace("Falso", "Real")
'Python Real'
>>> nome
'Python Real'

Copiado!

Note que quando você simplesmente chama .replace(), o valor de nome não muda. Mas quando você atribui o resultado de nome.replace() à variável nome, 'Python Falso' se torna 'Python Real'.

Agora é hora de aplicar esse conhecimento à transcrição:

Python

>>> transcrição = """\
... [support_tom] 2022-08-24T10:02:23+00:00 : Como posso ajudar?
... [johndoe] 2022-08-24T10:03:15+00:00 : NÃO CONSIGO ACESSAR MINHA CONTA MALDITA
... [support_tom] 2022-08-24T10:03:30+00:00 : Tem certeza de que não é o Caps Lock ativado?
... [johndoe] 2022-08-24T10:04:03+00:00 : Droga! Você está certo!"""
>>> transcrição.replace("MALDITA", "😤")
[support_tom] 2022-08-24T10:02:23+00:00 : Como posso ajudar?
[johndoe] 2022-08-24T10:03:15+00:0