Como usar a função replace no Python?
Como substituir uma string em Python
Por Ian Currie
Se você está procurando maneiras de remover ou substituir toda ou parte de uma string em Python, este tutorial é para você. Você estará trabalhando com um transcript fictício de uma sala de chat e realizando a sanitização do texto, tanto usando o método .replace()
quanto a função re.sub()
.
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 de string .replace()
:
Como você pode ver, você pode 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 própria string permanece inalterada. Você pode ver isso mais claramente atribuindo sua string a uma variável:
Observe 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 ao transcript.
Agora vamos substituir a palavra “MALDITA” por um emoji.
A saída será:
A palavra “MALDITA” foi substituída pelo emoji 😤. Você pode aplicar o método .replace()
a qualquer string em Python para substituir uma determinada substring.
Configurando várias regras de substituição
Agora imagine que você precisa substituir várias palavras ou frases em uma string. Em vez de encadear vários .replace()
sucessivos, você pode criar um dicionário com as palavras-chave a serem substituídas e suas substituições correspondentes.
Por exemplo:
Agora, vamos usar esse dicionário para percorrer a string do transcript e substituir as palavras ou frases correspondentes:
O resultado será o seguinte:
Todas as palavras ou frases definidas nas regras de substituição foram substituídas pela respectiva substituição. Dessa forma, você pode aplicar várias regras de substituição em uma única iteração.
Utilizando re.sub() para criar regras mais complexas
Até agora, trabalhamos apenas com strings literais. No entanto, suponha que você queira fazer substituições mais complexas, como substituir todas as ocorrências de uma palavra independente de maiúsculas ou minúsculas, ou substituir strings que correspondam a um determinado padrão. Para esses casos, você pode usar a função re.sub()
do módulo re
.
A função re.sub()
permite que você substitua todas as ocorrências de um padrão em uma string por outra string ou pelo resultado de uma função de chamada. Isso significa que você pode criar regras de substituição mais complexas, usando expressões regulares.
Por exemplo, vamos substituir todas as ocorrências das palavras “que” e “o” por um emoji na string do transcript:
A saída será:
As palavras “que” e “o” foram substituídas pelos respectivos emojis 🤷♂️ e 🤔 usando expressões regulares.
Usando um retorno de chamada com re.sub() para um controle ainda maior
A função re.sub()
também permite que você use um retorno de chamada para ter um controle ainda maior sobre as substituições. Em vez de fornecer uma string de substituição fixa, você pode fornecer uma função que será chamada para cada correspondência encontrada.
Vamos supor que você queira substituir a palavra “certa” por “errada” e a palavra “errada” por “certa”. Podemos criar uma função de retorno de chamada que troca essas palavras:
A saída será:
A palavra “certa” foi substituída por “errada” e a palavra “errada” foi substituída por “certa” usando a função de retorno de chamada inverter_palavras()
.
Aplicando o retorno de chamada ao script
Agora que você entende como usar o retorno de chamada com re.sub()
, você pode criar funções de retorno de chamada mais complexas para manipular as substituições de acordo com suas necessidades específicas. Por exemplo, você pode usar o retorno de chamada para substituir palavrões por emojis ou para aplicar regras específicas de sanitização a diferentes partes do texto.
A partir daqui, é possível personalizar as regras de substituição de acordo com a lógica desejada.
Conclusão
Neste tutorial, você aprendeu como substituir strings em Python usando o método .replace()
e a função re.sub()
. Você também viu como configurar várias regras de substituição, aproveitar as capacidades das expressões regulares e usar retornos de chamada para ter um controle ainda maior sobre as substituições.
Ao dominar essas técnicas, você pode facilmente substituir e remover strings em seus projetos Python, seja para sanitizar dados, filtrar palavras, ou qualquer outra aplicação necessária.
Lembre-se de experimentar diferentes exemplos e explorar mais recursos das funções .replace()
e re.sub()
para aprimorar suas habilidades em manipulação de strings em Python.