Extrair substring de uma string em Python

Vaibhav Vaibhav 10 outubro 2023
  1. Extraia substring usando string Slicing em Python
  2. Extraia a substring usando o construtor slice() em Python
  3. Extraia substring usando expressões regulares em Python
Extrair substring de uma string em Python

A string é uma sequência de caracteres. Lidamos com strings o tempo todo, não importa se estamos fazendo desenvolvimento de software ou programação competitiva. Às vezes, ao escrever programas, temos que acessar subpartes de uma string. Essas subpartes são mais comumente conhecidas como substrings. Uma substring é um subconjunto de uma string.

Em Python, podemos facilmente fazer essa tarefa usando corte de string ou expressão regular ou regex.

Extraia substring usando string Slicing em Python

Existem algumas maneiras de fazer o fatiamento de strings em Python. A indexação é o método mais básico e mais comumente usado. Consulte o código a seguir.

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

Resultado:

Mississippi
issippi
Mississi
ssiss
issipp
ssipp

No código acima, adicionamos [] colchetes no final da variável que armazena a string. Usamos essa notação para indexação. Dentro desses colchetes, adicionamos alguns valores inteiros que representam índices.

Este é o formato dos colchetes [start : stop : step] (separados por dois pontos (:)).

Por padrão, o valor de start é 0 ou o primeiro índice, o valor de stop é o último índice e o valor de step é 1. start representa o índice inicial da substring, stop representa o índice final da substring e step representa o valor a ser usado para incrementar após cada índice.

A substring retornada está na verdade entre o índice start e o índice stop - 1 porque a indexação começa em 0 em Python. Portanto, se quisermos recuperar Miss de Mississippi, devemos usar [0 : 4]

Os colchetes não podem estar vazios. Se você deseja usar os valores padrão, a quantidade necessária de dois-pontos : deve ser adicionada com espaços entre para indicar a qual parâmetro você se refere. Consulte a lista a seguir para melhor compreensão.

  • [:] -> Retorna a string inteira.
  • [4 : ] -> Retorna uma substring começando do índice 4 até o último índice.
  • [ : 8] -> Retorna uma substring começando do índice 0 até o índice 7.
  • [2 : 7] -> Retorna uma substring começando do índice 2 até o índice 6.
  • [4 : -1] -> Retorna uma substring começando do índice 4 até o penúltimo índice. -1 pode ser usado para definir o último índice em Python.
  • [-6 : -1] -> Retorna uma substring começando do sexto índice do final até o penúltimo índice.

Extraia a substring usando o construtor slice() em Python

Em vez de mencionar os índices dentro dos colchetes, podemos usar o construtor slice() para criar um objeto slice para fatiar uma string ou qualquer outra sequência, como uma lista ou tupla.

O construtor slice(start, stop, step) aceita três parâmetros, nomeadamente, start, stop e step. Eles significam exatamente o mesmo que explicado acima.

O funcionamento de slice é um pouco diferente em comparação com a notação de colchetes. O objeto de fatia é colocado dentro dos colchetes variáveis ​​de string como este myString [<objeto 'slice'>].

Se um único valor inteiro, digamos x, é fornecido ao construtor slice() e é posteriormente usado para o fracionamento do índice, uma substring começando do índice 0 até o índice x - 1 será recuperada. Consulte o código a seguir.

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

Resultado:

Mis
Miss
Mississi
ssiss
issipp
ssipp

As saídas recebidas são autoexplicativas. Os índices seguem as mesmas regras definidas para a notação de colchetes.

Extraia substring usando expressões regulares em Python

Para expressão regular, usaremos o pacote integrado do Python re.

import re

string = "123AAAMississippiZZZ123"

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

Resultado:

Mississippi

No código acima, a função search() procura a primeira localização do padrão fornecido como um argumento na string passada. Ele retorna um objeto Match. Um objeto Match tem muitos atributos que definem a saída, como o span da substring ou os índices inicial e final da substring.

print(dir(re.search('AAA(.+?)ZZZ', string))) irá imprimir todos os atributos do objeto Match. Note que alguns atributos podem estar faltando porque quando dir() é usado, o método __dir__() é chamado, e este método retorna uma lista de todos os atributos. E esse método é editável ou substituível.

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.

Artigo relacionado - Python String