Extraer subcadena de una cadena en Python

Vaibhav Vaibhav 10 octubre 2023
  1. Extraer subcadena mediante la división de cadenas en Python
  2. Extraer subcadena usando el constructor slice() en Python
  3. Extraer subcadenas usando expresiones regulares en Python
Extraer subcadena de una cadena en Python

La cadena es una secuencia de caracteres. Trabajamos con cadenas todo el tiempo, sin importar si estamos haciendo desarrollo de software o programación competitiva. A veces, mientras escribimos programas, tenemos que acceder a subpartes de una cadena. Estas subpartes se conocen más comúnmente como subcadenas. Una subcadena es un subconjunto de una cadena.

En Python, podemos hacer esta tarea fácilmente usando la división de cadenas o usando expresiones regulares o regex.

Extraer subcadena mediante la división de cadenas en Python

Hay algunas formas de cortar cadenas en Python. La indexación es el método más básico y más utilizado. Consulte el siguiente código.

myString = "Mississippi"
print(myString[:])  # Line 1
print(myString[4:])  # Line 2
print(myString[:8])  # Line 3
print(myString[2:7])  # Line 4
print(myString[4:-1])  # Line 5
print(myString[-6:-1])  # Line 6

Producción :

Mississippi
issippi
Mississi
ssiss
issipp
ssipp

En el código anterior, agregamos corchetes [] al final de la variable que almacena la cadena. Usamos esta notación para indexar. Dentro de estos corchetes, agregamos algunos valores enteros que representan índices.

Este es el formato para los corchetes [start : stop : step] (separados por dos puntos (:)).

Por defecto, el valor de start es 0 o el primer índice, el valor de stop es el último índice y el valor de step es 1. start representa el índice inicial de la subcadena, stop representa el índice final de la subcadena y step representa el valor a utilizar para incrementar después de cada índice.

La subcadena devuelta está en realidad entre el índice start y el índice stop - 1 porque la indexación comienza desde 0 en Python. Entonces, si deseamos recuperar Miss de Mississippi, debemos usar [0 : 4]

Los corchetes no pueden estar vacíos. Si desea utilizar los valores predeterminados, la cantidad requerida de dos puntos : debe agregarse con espacios en el medio para indicar a qué parámetro se refiere. Consulte la siguiente lista para una mejor comprensión.

  • [:] -> Devuelve la cadena completa.
  • [4 : ] -> Devuelve una subcadena desde el índice 4 hasta el último índice.
  • [ : 8] -> Devuelve una subcadena comenzando desde el índice 0 hasta el índice 7.
  • [2 : 7] -> Devuelve una subcadena comenzando desde el índice 2 hasta el índice 6.
  • [4 : -1] -> Devuelve una subcadena comenzando desde el índice 4 hasta el penúltimo índice. -1 se puede utilizar para definir el último índice en Python.
  • [-6 : -1] -> Devuelve una subcadena comenzando desde el sexto índice desde el final hasta el penúltimo índice.

Extraer subcadena usando el constructor slice() en Python

En lugar de mencionar los índices dentro de los corchetes, podemos usar el constructor slice() para crear un objeto slice para cortar una cadena o cualquier otra secuencia como una lista o tupla.

El constructor slice(start, stop, step) acepta tres parámetros, a saber, start, stop y step. Significan exactamente lo mismo que se explicó anteriormente.

El funcionamiento de slice es un poco diferente en comparación con la notación de corchetes. El objeto de corte se coloca dentro de los corchetes de variable de cadena como este myString[<'slice' object>].

Si un único valor entero, digamos x, se proporciona al constructor slice() y se usa más para la división de índices, se recuperará una subcadena que comienza desde el índice 0 hasta el índice x - 1. Consulte el siguiente código.

myString = "Mississippi"
slice1 = slice(3)
slice2 = slice(4)
slice3 = slice(0, 8)
slice4 = slice(2, 7)
slice5 = slice(4, -1)
slice6 = slice(-6, -1)
print(myString[slice1])
print(myString[slice2])
print(myString[slice3])
print(myString[slice4])
print(myString[slice5])
print(myString[slice6])

Producción :

Mis
Miss
Mississi
ssiss
issipp
ssipp

Los resultados recibidos se explican por sí mismos. Los índices siguen las mismas reglas definidas para la notación de corchetes.

Extraer subcadenas usando expresiones regulares en Python

Para la expresión regular, usaremos el paquete incorporado de Python re.

import re

string = "123AAAMississippiZZZ123"

try:
    found = re.search("AAA(.+?)ZZZ", string).group(1)
    print(found)
except AttributeError:
    pass

Producción :

Mississippi

En el código anterior, la función search() busca la primera ubicación del patrón proporcionado como argumento en la cadena pasada. Devuelve un objeto Match. Un objeto Match tiene muchos atributos que definen la salida, como el span de la subcadena o los índices inicial y final de la subcadena.

print(dir(re.search('AAA(.+?)ZZZ', string))) generará todos los atributos del objeto Match. Tenga en cuenta que algunos atributos pueden faltar porque cuando se usa dir(), se llama al método __dir__(), y este método devuelve una lista de todos los atributos. Y este método es editable o reemplazable.

Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.

Artículo relacionado - Python String