Saltar al contenido

Buscar subcadena en Python

Buscar subcadena en python

En este tutorial vas a descubrir los diferentes métodos que existen para buscar una subcadena en Python. Todos estos métodos pertenecen a la clase String.

Comprobar si existe una subcadena con el operador in

Si solo necesitas comprobar que una subcadena está contenida en un texto, utiliza el operador in. Este operador devuelve True si encuentra la subcadena en la cadena y False en caso contrario.

>>> 'ol' in 'hola'
True

>>> 'hel' in 'hola'
False

Buscar una subcadena en Python con find

find(sub [, pos_ini, pos_final]) es parecido a utilizar el operador in, con la diferencia de que si encuentra la subcadena sub devuelve el índice por el que comienza la primera aparición de dicha subcadena, y -1 en caso contrario.

>>> cadena = 'me gusta la mermelada'

>>> cadena.find('la')
9

>>> cadena.find('lo')
-1

>>> cadena.find('la', 11)
17

Buscar una subcadena con index

index(sub [, pos_ini, pos_final]) es similar a find() pero en caso de que no se encuentre la subcadena sub lanza la excepción ValueError.

>>> cadena = 'me gusta la mermelada'

>>> cadena.index('lo')
Traceback (most recent call last):
  File "<input>", line 1, in <module>
ValueError: substring not found

>>> cadena.index('la')
9

Encontrar la última posición de una subcadena en Python con rfind

rfind(sub [, pos_ini, pos_final]) devuelve el índice por el que comienza la última aparición de la subcadena sub, y -1 si no se encuentra.

>>> cadena = 'me gusta la mermelada'

>>> cadena.rfind('la')
17

>>> cadena.rfind('lo')
-1

Encontrar la última posición de una subcadena con rindex

rindex(sub [, pos_ini, pos_final]) es similar a rfind() pero en caso de que no se encuentre la subcadena sub lanza la excepción ValueError.

>>> cadena = 'me gusta la mermelada'

>>> cadena.rindex('la')
17

>>> cadena.rindex('lo')
Traceback (most recent call last):
  File "<input>", line 1, in <module>
ValueError: substring not found

Contar el número de ocurrencias de una subcadena

Para obtener el número de veces que una subcadena aparece en un texto, utiliza el método count(). count(sub [, pos_ini, pos_final]) devuelve el número de ocurrencias de la subcadena sub en la cadena.

>>> cadena = 'me gusta la mermelada'

>>> cadena.count('la')
2

>>> cadena.count('lo')
0

Comprobar si una cadena comienza por un prefijo en Python

Para comprobar si una cadena comienza por una subcadena, utiliza el método startswith(). startswith(prefijo [, pos_ini, pos_fin]) devuelve True si la cadena comienza por prefijo y False en caso contrario. prefijo puede ser una tupla de prefijos a buscar.

>>> cadena = 'me gusta la mermelada'

>>> cadena.startswith('me')
True

>>> cadena.startswith('no')
False

>>> cadena.startswith(('me', 'le', 'te'))
True

Comprobar si una cadena finaliza con un sufijo en Python

Para comprobar si una cadena finaliza por una subcadena, utiliza el método endswith(). endswith(sufijo [, pos_ini, pos_fin]) devuelve True si la cadena termina por sufijo y False en caso contrario. sufijo puede ser una tupla de sufijos a buscar.

>>> cadena = 'me gusta la mermelada'

>>> cadena.endswith('da')
True

>>> cadena.endswith('drid')
False

>>> cadena.endswith(('drid', 'ro', 'la'))
False

>>> cadena.endswith(('drid', 'ro', 'da'))
True

Pues hemos llegado al final de este tutorial. En él, hemos repasado los diferentes métodos que ofrece la clase String para buscar subcadenas en un texto en Python.