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))
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))
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