Método de reemplazo de expresiones regulares en Python
En este tutorial, veremos el uso y la función del método re.sub()
y veremos los códigos de ejemplo. El módulo re
de Python proporciona las diversas funcionalidades utilizando expresiones regulares tanto para Unicode como para cadenas de 8 bits. Las funcionalidades incluyen reemplazo, división y emparejamiento de cadenas, etc.
Reemplazo de expresiones regulares usando el método re.sub()
en Python
El método re.sub(pattern, repl, string, count=0)
toma la string
como entrada y reemplaza las ocurrencias más a la izquierda del pattern
con la repl
. Si no se encuentra ningún pattern
en el argumento cadena
, la cadena
se devuelve sin ningún cambio.
El argumento pattern
debe tener la forma de una expresión regular. La repl
puede ser una cadena o una función. Si el argumento repl
es una cadena, entonces el pattern
en la string
se reemplaza por la cadena repl
. Si se pasa una función como argumento repl
, entonces se llamará a la función siempre que se encuentre una ocurrencia del pattern
. La función toma el matchObject
como entrada y devuelve la cadena de reemplazo. El matchObject
tendrá su valor igual a True
si se encuentra la coincidencia y tendrá su valor igual a None
en caso contrario.
El argumento opcional count
representa el número máximo de apariciones del pattern
que queremos reemplazar en la string
.
El siguiente código de ejemplo demuestra cómo usar el método re.sub()
para reemplazar algún patrón de la cadena usando la expresión regular:
import re
string = "Hello! How are you?! Where have you been?!"
new_string = re.sub(r"""[!?'".<>(){}@%&*/[/]""", " ", string)
print(new_string)
Producción :
Hello How are you Where have you been
El ejemplo de código anterior elimina los caracteres especificados en el argumento pattern
con el espacio en blanco, que es nuestro argumento repl
en el código anterior.
También podemos usar la función como argumento repl
para realizar la misma tarea devolviendo " "
siempre que se encuentre una ocurrencia del argumento repl
, como se muestra en el siguiente código de ejemplo:
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)
Producción :
Hello How are you Where have you been