Python: extrae una string entre dos substrings

Dada una string y dos substrings, escriba un programa de Python para extraer la string entre las dos substrings encontradas. 

Entrada: test_str = «Gfg es mejor para geeks y CS», sub1 = «es», sub2 = «y» 

Salida: mejor para geeks

Explicación: lo mejor para los geeks es entre es y ‘y’

Entrada: test_str = «Gfg es mejor para geeks y CS», sub1 = «para», sub2 = «y» 

Salida: frikis

Explicación: geeks está entre para y ‘y’

Método #1: Usando index() + loop

En esto, obtenemos los índices de ambas substrings usando index(), luego se usa un ciclo para iterar dentro del índice para encontrar la string requerida entre ellos.

Python3

# Python3 code to demonstrate working
# of Extract string between 2 substrings
# Using loop + index()
 
# initializing string
test_str = "Gfg is best for geeks and CS"
 
# printing original string
print("The original string is : " + str(test_str))
 
# initializing substrings
sub1 = "is"
sub2 = "and"
 
# getting index of substrings
idx1 = test_str.index(sub1)
idx2 = test_str.index(sub2)
 
res = ''
# getting elements in between
for idx in range(idx1 + len(sub1) + 1, idx2):
    res = res + test_str[idx]
 
# printing result
print("The extracted string : " + res)
Producción

The original string is : Gfg is best for geeks and CS
The extracted string : best for geeks 

Método n.º 2: Usar index() + corte de strings

Similar al método anterior, solo la tarea de cortar se realiza usando el corte de strings para proporcionar una solución mucho más compacta. 

Python3

# Python3 code to demonstrate working
# of Extract string between 2 substrings
# Using index() + string slicing
 
# initializing string
test_str = "Gfg is best for geeks and CS"
 
# printing original string
print("The original string is : " + str(test_str))
 
# initializing substrings
sub1 = "is"
sub2 = "and"
 
# getting index of substrings
idx1 = test_str.index(sub1)
idx2 = test_str.index(sub2)
 
# length of substring 1 is added to
# get string from next character
res = test_str[idx1 + len(sub1) + 1: idx2]
 
# printing result
print("The extracted string : " + res)
Producción

The original string is : Gfg is best for geeks and CS
The extracted string : best for geeks 

Método n.° 3: Usar el corte de strings find()+.

El método find() devuelve la posición de la string pasada como argumento o de lo contrario devuelve -1. Finalmente, corte la string con las posiciones.

Python3

# Python3 code to demonstrate working
# of Extract string between 2 substrings
# Using find() + string slicing
 
# initializing string
test_str = "Gfg is best for geeks and CS"
 
# printing original string
print("The original string is : " + str(test_str))
 
# initializing substrings
sub1 = "is"
sub2 = "and"
 
# getting index of substrings
idx1 = test_str.find(sub1)
idx2 = test_str.find(sub2)
 
# length of substring 1 is added to
# get string from next character
res = test_str[idx1 + len(sub1) + 1: idx2]
 
# printing result
print("The extracted string : " + res)
Producción

The original string is : Gfg is best for geeks and CS
The extracted string : best for geeks 

Método #4: Usando replace() y split()

Python3

# Python3 code to demonstrate working
# of Extract string between 2 substrings
 
# initializing string
test_str = "Gfg is best for geeks and CS"
 
# printing original string
print("The original string is : " + str(test_str))
 
# initializing substrings
sub1 = "is"
sub2 = "and"
 
test_str=test_str.replace(sub1,"*")
test_str=test_str.replace(sub2,"*")
re=test_str.split("*")
res=re[1]
 
# printing result
print("The extracted string : " + res)
Producción

The original string is : Gfg is best for geeks and CS
The extracted string :  best for geeks 

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 *