Método de substituição Regex em Python
Neste tutorial, examinaremos o uso e a função do método re.sub()
e examinaremos os códigos de exemplo. O módulo re
do Python fornece várias funcionalidades usando expressões regulares para strings Unicode e de 8 bits. As funcionalidades incluem substituição, divisão e combinação de strings, etc.
Regex Replace usando o método re.sub()
em Python
O método re.sub(pattern, repl, string, count=0)
leva a string
como entrada e substitui as ocorrências mais à esquerda do pattern
pelo repl
. Se nenhum pattern
for encontrado no argumento string
, a string
é retornada sem nenhuma alteração.
O argumento pattern
deve estar na forma de uma expressão regular. O repl
pode ser uma string ou uma função. Se o argumento repl
for uma string, o pattern
na string
será substituído pela string repl
. Se uma função for passada como o argumento repl
, então a função será chamada sempre que uma ocorrência do pattern
for encontrada. A função recebe o matchObject
como entrada e retorna a string de substituição. O matchObject
terá seu valor igual a True
se a correspondência for encontrada e terá seu valor igual a None
caso contrário.
O argumento opcional count
representa o máximo de ocorrências do pattern
que queremos substituir na string
.
O código de exemplo a seguir demonstra como usar o método re.sub()
para substituir algum padrão da string usando a expressão regular:
import re
string = "Hello! How are you?! Where have you been?!"
new_string = re.sub(r"""[!?'".<>(){}@%&*/[/]""", " ", string)
print(new_string)
Resultado:
Hello How are you Where have you been
O exemplo de código acima remove os caracteres especificados no argumento pattern
com o espaço em branco, que é nosso argumento repl
no código acima.
Também podemos usar a função como o argumento repl
para realizar a mesma tarefa, retornando " "
sempre que uma ocorrência do argumento repl
for encontrada, conforme mostrado no código de exemplo abaixo:
import re
def repl_func(match):
if match == True:
return " "
string = "Hello! How are you?! Where have you been?!"
new_string = re.sub(r"""[!?'".<>(){}@%&*/[/]""", repl_func, string)
print(new_string)
Resultado:
Hello How are you Where have you been