Pular para o conteúdo

Como usar o método Python para verificar se uma string contém outra?

CodeMDD.io

Como Confirmar Se uma String Python Contém Outra String

Se você precisa verificar se uma string contém uma substring, use o operador de associação in do Python. Isso é recomendado como a maneira ideal de confirmar a existência de uma substring em uma string:

raw_file_content = """Olá e bem-vindo.
Este é um arquivo especial oculto com um segredo SECRETO.
Eu não quero te contar O Segredo,
mas eu quero te contar secretamente que eu tenho um."""
print("secret" in raw_file_content)

O operador in de associação dá a você uma maneira rápida e legível de verificar se uma substring está presente em uma string. Você pode perceber que a linha de código quase parece uma frase em inglês.

Observação: Se você quiser verificar se a substring NÃO está na string, você pode usar not in:

print("secret" not in raw_file_content)

Como a substring “secret” está presente em raw_file_content, o operador not in retorna False.

Quando você usa in, a expressão retorna um valor booleano:

  • True se o Python encontrar a substring
  • False se o Python não encontrar a substring

Você pode usar essa sintaxe intuitiva em declarações condicionais para tomar decisões em seu código:

if "secret" in raw_file_content:
print("Encontrado!")

Nesse trecho de código, usamos o operador de associação para verificar se “secret” é uma substring de raw_file_content. Se for, então imprimimos uma mensagem no terminal.

Generalize a Verificação Removendo a Sensibilidade a Maiúsculas e Minúsculas

Às vezes, você precisa verificar se uma string contém uma substring, mas não se importa com a sensibilidade a letras maiúsculas e minúsculas. Nesse caso, você pode usar o método lower() para converter ambas as strings para minúsculas antes de fazer a verificação. Dessa forma, você não precisa se preocupar com a diferença de maiúsculas e minúsculas.

raw_file_content = "This is a Sample String"
substring = "SAMPLE"
if substring.lower() in raw_file_content.lower():
print("A substring está presente independentemente de maiúsculas e minúsculas.")

Nesse exemplo, primeiro convertemos tanto a string original quanto a substring para minúsculas usando o método lower(). Em seguida, verificamos se a substring está presente na string convertida em minúsculas. Se estiver, imprimimos a mensagem.

Essa abordagem é útil quando você deseja fazer uma verificação que seja insensível a maiúsculas e minúsculas.

Saiba Mais Sobre a Substring

Se você quiser obter mais informações sobre a substring encontrada em uma string, o Python oferece vários métodos que podem ajudar.

Por exemplo, você pode usar o método find() para encontrar a posição da primeira ocorrência da substring em uma string:

raw_file_content = "This is a Sample String"
substring = "Sample"
position = raw_file_content.find(substring)
print("A substring foi encontrada na posição:", position)

Nesse caso, usamos o método find() para encontrar a primeira ocorrência de “Sample” na string raw_file_content. Ele retorna a posição (índice) onde a substring começa. Você pode usar essa informação para realizar operações adicionais na string, se necessário.

Se você quiser encontrar todas as ocorrências da substring em uma string, você pode usar o método finditer() em conjunto com a biblioteca re (expressões regulares). Veja um exemplo:

import re
raw_file_content = "This is a Sample String with another Sample."
substring = "Sample"
matches = [match.start() for match in re.finditer(substring, raw_file_content)]
print("A substring foi encontrada nas posições:", matches)

Nesse caso, usamos a biblioteca re para realizar uma busca com expressões regulares. O método finditer() retorna um iterador que encontra todas as ocorrências da substring na string. Percorremos esse iterador e armazenamos as posições em uma lista. Em seguida, imprimimos a lista de posições.

Essas são apenas algumas opções disponíveis em Python para trabalhar com substrings e encontrar informações adicionais.

Encontre uma Substring em uma Coluna do DataFrame do pandas

Se você estiver trabalhando com um DataFrame do pandas e precisar pesquisar substrings em uma coluna, o pandas oferece métodos específicos para essa finalidade.

import pandas as pd
data = {
"Name": ["John", "Jane", "Alice"],
"City": ["New York", "London", "Paris"],
"Email": ["john@example.com", "jane@example.com", "alice@example.com"]
}
df = pd.DataFrame(data)
substring = "example"
# Filtra as linhas onde a coluna "Email" contém a substring
filtered_df = df[df["Email"].str.contains(substring)]
print(filtered_df)

Nesse exemplo, temos um DataFrame com uma coluna “Email”. Usamos o método str.contains() para verificar se cada valor na coluna contém a substring “example”. Em seguida, filtramos o DataFrame com as linhas contendo a substring e imprimimos o DataFrame filtrado.

Essa abordagem é útil quando você precisa pesquisar substrings em dados tabulares usando o pandas.

Resumo

Neste tutorial, você aprendeu como verificar se uma string Python contém uma substring. Usamos o operador in para fazer essa verificação. Também exploramos a generalização da verificação removendo a sensibilidade a maiúsculas e minúsculas usando o método lower(). Além disso, vimos diferentes métodos para obter informações sobre substrings, como find() e finditer(). Por fim, discutimos como encontrar substrings em colunas de DataFrames do pandas. Agora você está equipado com as ferramentas necessárias para trabalhar com substrings em Python de maneira eficiente e eficaz.