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