Python: ¿Cómo reemplazar uno o varios caracteres en una cadena?

En este artículo discutiremos cómo reemplazar uno o varios caracteres en una cadena en Python.

Python proporciona una función str.replace (), es decir,

str.replace(old, new , count)

Devuelve un nuevo objeto de cadena que es una copia de la cadena existente con reemplazado contenido. Además,

  • Si no se proporciona el recuento, devolverá una cadena con todas las apariciones de ‘antiguo’, reemplazada por una cadena ‘nueva’.
  • Si se pasa el parámetro de recuento, devuelve una cadena con las primeras apariciones de ‘cuenta’ de la cadena ‘antigua’ reemplazada por una cadena ‘nueva’.

Entendamos por ejemplos,

Reemplazar todas las apariciones de un carácter dado / cadena en una cadena

Supongamos que tenemos una cadena, es decir,

mainStr = "Hello, This is a sample string"

Ahora, reemplacemos todas las apariciones de ‘s ‘con’ X ‘es decir

"""Replace all occurrences of given character or string in main string"""otherStr = mainStr.replace("s" , "X") 

El contenido de otherStr es el siguiente,

Hello, ThiX iX a Xample Xtring

Como Las cadenas son inmutables en Python, por lo que no podemos cambiar su contenido. Por lo tanto, las funciones miembro como replace () devuelven una nueva cadena.
Como no hemos proporcionado el parámetro count en la función replace (). Por lo tanto, reemplazará todas las apariciones de «s» con «X». Pero, ¿qué pasa si queremos reemplazar solo las primeras apariciones en lugar de todas? Veamos cómo hacer eso,

Reemplazar las primeras n apariciones de un carácter / subcadena en una cadena

Supongamos que tenemos una cadena, es decir,

mainStr = "Hello, This is a sample string"

Ahora, reemplacemos las 2 primeras apariciones de ‘s’ con ‘XXXS’, es decir,

"""Replace First 2 occurrences of given character or string in main string"""otherStr = mainStr.replace("s" , "XXXS", 2) 

El contenido de otherStr es el siguiente,

Hello, ThiXXXS iXXXS a sample string

Como hemos pasado el parámetro count como 2, solo las 2 primeras apariciones de ‘s’ serán reemplazadas en la copia devuelta.

Reemplazar múltiples caracteres / cadenas en una cadena

La función str.replace () puede reemplazar las ocurrencias de una subcadena dada solamente. Pero, ¿qué pasa si queremos reemplazar varias subcadenas en una cadena determinada?

Supongamos que tenemos una cadena, es decir,

mainStr = "Hello, This is a sample string"

Ahora, ¿cómo reemplazar todas las apariciones de estos tres caracteres ‘s’, ‘l’, ‘a’ con esta cadena ‘AA’?
Vamos a crear una nueva función sobre replace () para hacer eso, es decir,

"""Replace a set of multiple sub strings with a new string in main string."""def replaceMultiple(mainString, toBeReplaces, newString): # Iterate over the strings to be replaced for elem in toBeReplaces : # Check if string is in the main string if elem in mainString : # Replace the string mainString = mainString.replace(elem, newString) return mainString

Reemplazará todas las ocurrencias de cadenas en List toBeReplaces con newString en la lista principal dada mainString.
Veamos cómo reemplazar las ocurrencias de con «AA» es decir
El contenido de otherStr es el siguiente,

HeAAAAo, ThiAA iAA AA AAAAmpAAe AAtring

El ejemplo completo es el siguiente,
Salida:

String with replaced Content : Hello, ThiX iX a Xample XtringHello, ThiXXXS iXXXS a sample stringHeAAAAo, ThiAA iAA AA AAAAmpAAe AAtring

Write a Comment

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *