Python Buscar todas las apariciones en una cadena

Vaibhhav Khetarpal 30 enero 2023
  1. Utilice la función string.count() para encontrar todas las apariciones de una subcadena en una cadena en Python
  2. Utilice la comprensión de la lista y startswith() para encontrar todas las apariciones de una subcadena en una cadena en Python
  3. Utilice re.finditer() para encontrar todas las apariciones de una subcadena en una cadena en Python
Python Buscar todas las apariciones en una cadena

Una subcadena en Python es un grupo de caracteres que ocurre dentro de otra cadena. Tratar con subcadenas a menudo puede ser problemático. Uno de esos problemas es encontrar todas las apariciones de una subcadena dentro de una cadena en particular.

Este tutorial discutirá diferentes métodos para encontrar todas las apariciones de una subcadena dentro de una cadena en Python.

Utilice la función string.count() para encontrar todas las apariciones de una subcadena en una cadena en Python

string.count() es una función incorporada en Python que devuelve la cantidad o el número de ocurrencias de una subcadena en una determinada cadena en particular. Además, tiene parámetros adicionales start y end para especificar los índices de las posiciones inicial y final.

El método count() atraviesa la cadena y devuelve el número de veces que ha ocurrido una subcadena específica en la cadena.

El siguiente código usa la función string.count() para encontrar todas las apariciones de una subcadena en una cadena.

# defining string and substring
str1 = "This dress looks good; you have good taste in clothes."
substr = "good"

# occurrence of word 'good' in whole string
count1 = str1.count(substr)
print(count1)

# occurrence of word 'good' from index 0 to 25
count2 = str1.count(substr, 0, 25)
print(count2)

Producción :

2
1

Es un método fácil y funciona en todos los casos. El único inconveniente de este método es que no devuelve los diferentes índices en los que se produce la subcadena en la cadena.

Utilice la comprensión de la lista y startswith() para encontrar todas las apariciones de una subcadena en una cadena en Python

Este método necesita dos cosas: comprensión de listas y el método startswith().

La función startswith() realiza la tarea de obtener los índices iniciales de la subcadena, y la comprensión de la lista se utiliza para recorrer la cadena de destino completa.

El siguiente código usa la comprensión de listas y startswith() para encontrar todas las apariciones de una subcadena en una cadena.

# defining string
str1 = "This dress looks good; you have good taste in clothes."

# defining substring
substr = "good"

# printing original string
print("The original string is : " + str1)

# printing substring
print("The substring to find : " + substr)

# using list comprehension + startswith()
# All occurrences of substring in string
res = [i for i in range(len(str1)) if str1.startswith(substr, i)]

# printing result
print("The start indices of the substrings are : " + str(res))

Producción :

The original string is : This dress looks good; you have good taste in clothes.
The substring to find : good
The start indices of the substrings are : [17, 34]

Utilice re.finditer() para encontrar todas las apariciones de una subcadena en una cadena en Python

re.finditer() es una función de la biblioteca de expresiones regulares que Python proporciona para que los programadores la utilicen en su código. Ayuda a realizar la tarea de encontrar la ocurrencia de un patrón particular en una cadena. Para usar esta función, primero debemos importar la biblioteca de expresiones regulares re.

re.finditer() usa el parámetro pattern y string en su sintaxis. En este caso, el patrón se refiere a la subcadena.

El siguiente código utiliza la función re.finditer() para encontrar todas las apariciones de una subcadena en una cadena.

import re

# defining string
str1 = "This dress looks good; you have good taste in clothes."

# defining substring
substr = "good"

print("The original string is: " + str1)

print("The substring to find: " + substr)

result = [_.start() for _ in re.finditer(substr, str1)]

print("The start indices of the substrings are : " + str(result))

Producción :

The original string is: This dress looks good; you have good taste in clothes.
The substring to find: good
The start indices of the substrings are : [17, 34]
Vaibhhav Khetarpal avatar Vaibhhav Khetarpal avatar

Vaibhhav is an IT professional who has a strong-hold in Python programming and various projects under his belt. He has an eagerness to discover new things and is a quick learner.

LinkedIn

Artículo relacionado - Python String