Python: reemplazo de strings que no distingue entre mayúsculas y minúsculas

Dada una string de palabras. La tarea es escribir un programa en Python para reemplazar la palabra dada independientemente del caso con la string dada.

Ejemplos:

Entrada: test_str = «gfg is Best», repl = «good», subs = «best»

Salida: gfg es bueno

Explicación: BeSt se reemplaza por «bueno» ignorando los casos.

Entrada: test_str = «gfg is Best», repl = «mejor», subs = «mejor»

Salida: gfg es mejor

Explicación: BeSt se reemplaza por «mejor» ignorando los casos.

Método #1: Usar re.IGNORECASE + re.escape() + re.sub()

En esto, sub() de regex se usa para realizar la tarea de reemplazo e IGNORECASE, ignora los casos y realiza un reemplazo que no distingue entre mayúsculas y minúsculas.

Python3

# Python3 code to demonstrate working of
# Case insensitive Replace
# Using re.IGNORECASE + re.escape() + re.sub()
import re
 
# initializing string
test_str = "gfg is BeSt"
 
# printing original string
print("The original string is : " + str(test_str))
 
# initializing replace string
repl = "good"
 
# initializing substring to be replaced
subs = "best"
 
# re.IGNORECASE ignoring cases
# compilation step to escape the word for all cases
compiled = re.compile(re.escape(subs), re.IGNORECASE)
res = compiled.sub(repl, test_str)
         
# printing result
print("Replaced String : " + str(res))
Producción

The original string is : gfg is BeSt
Replaced String : gfg is good

Método #2: Usar sub() + lambda + escape() 

Usando una expresión regular de caso de ignorar particular, también se puede resolver este problema. Resto, se usa una función lambda para manejar los caracteres de escape si están presentes en la string. 

Python3

# Python3 code to demonstrate working of
# Case insensitive Replace
# Using sub() + lambda + escape()
import re
 
# initializing string
test_str = "gfg is BeSt"
 
# printing original string
print("The original string is : " + str(test_str))
 
# initializing replace string
repl = "good"
 
# initializing substring to be replaced
subs = "best"
 
# regex used for ignoring cases
res = re.sub('(?i)'+re.escape(subs), lambda m: repl, test_str)
         
# printing result
print("Replaced String : " + str(res))
Producción

The original string is : gfg is BeSt
Replaced String : gfg is good

Método #3 : Usar split(), lower() y replace(). También puede usar upper() en lugar de lower().

Python3

# Python3 code to demonstrate working of
# Case insensitive Replace
 
# initializing string
test_str = "gfg is BeSt"
 
# printing original string
print("The original string is : " + str(test_str))
 
# initializing replace string
repl = "good"
 
# initializing substring to be replaced
subs = "best"
 
x = test_str.split()
for i in x:
    if(i.lower()==subs.lower()):
        test_str=test_str.replace(i,repl)
# printing result
print("Replaced String : " + test_str)
 
#contributed by Bhavya Koganti
Producción

The original string is : gfg is BeSt
Replaced String : gfg is good

Publicación traducida automáticamente

Artículo escrito por manjeet_04 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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