Python | Todas las apariciones de substring en string

Muchas veces, mientras trabajamos con strings, tenemos problemas al tratar con substrings. Esto puede incluir el problema de encontrar todas las posiciones de una substring particular en una string. Analicemos ciertas formas en que se puede realizar esta tarea.

Método #1: Uso de la comprensión de listas +startswith()
Esta tarea se puede realizar utilizando las dos funcionalidades. La función beginwith realiza principalmente la tarea de obtener los índices iniciales de la substring y la comprensión de la lista se usa para iterar a través de toda la string de destino.

# Python3 code to demonstrate working of
# All occurrences of substring in string
# Using list comprehension + startswith()
  
# initializing string 
test_str = "GeeksforGeeks is best for Geeks"
  
# initializing substring
test_sub = "Geeks"
  
# printing original string 
print("The original string is : " + test_str)
  
# printing substring 
print("The substring to find : " + test_sub)
  
# using list comprehension + startswith()
# All occurrences of substring in string 
res = [i for i in range(len(test_str)) if test_str.startswith(test_sub, i)]
  
# printing result 
print("The start indices of the substrings are : " + str(res))
Producción :

The original string is : GeeksforGeeks is best for Geeks
The substring to find : Geeks
The start indices of the substrings are : [0, 8, 26]

Método #2: Usar re.finditer()
La función finditer de la biblioteca de expresiones regulares puede ayudarnos a realizar la tarea de encontrar las ocurrencias de la substring en la string de destino y la función de inicio puede devolver el índice resultante de cada una de ellas.

# Python3 code to demonstrate working of
# All occurrences of substring in string
# Using re.finditer()
import re
  
# initializing string 
test_str = "GeeksforGeeks is best for Geeks"
  
# initializing substring
test_sub = "Geeks"
  
# printing original string 
print("The original string is : " + test_str)
  
# printing substring 
print("The substring to find : " + test_sub)
  
# using re.finditer()
# All occurrences of substring in string 
res = [i.start() for i in re.finditer(test_sub, test_str)]
  
# printing result 
print("The start indices of the substrings are : " + str(res))
Producción :

The original string is : GeeksforGeeks is best for Geeks
The substring to find : Geeks
The start indices of the substrings are : [0, 8, 26]

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 *