Pular para o conteúdo

Como verificar facilmente se uma string contém uma substring em Python?

[

Como verificar se uma string em Python contém uma substring

Python Tricks Dictionary Merge

Neste tutorial, você aprenderá a verificar se uma string em Python contém uma determinada substring. Essa habilidade é útil quando você está trabalhando com conteúdo de texto de um arquivo ou quando precisa lidar com entrada do usuário. Você pode querer realizar ações diferentes em seu programa, dependendo se uma substring está presente ou não.

A forma mais Pythonica de fazer essa verificação é usando o operador de pertencimento in. Além disso, você aprenderá a identificar os métodos corretos de string para casos de uso relacionados, mas diferentes.

Como confirmar se uma string em Python contém outra string

Para verificar se uma string contém uma substring, use o operador de pertencimento in do Python. É a forma recomendada de confirmar a existência de uma substring em uma string.

raw_file_content = """Oi, bem-vindo.
Esse é um arquivo especial oculto com um segredo SECRETO.
Eu não quero te contar O Segredo,
mas quero secretamente te contar que eu tenho um."""
"segredo" in raw_file_content

O operador in fornece uma maneira rápida e legível de verificar se uma substring está presente em uma string. Você pode notar que a linha de código quase parece uma frase em inglês.

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

"segredo" not in raw_file_content

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 esta sintaxe intuitiva em instruções condicionais para tomar decisões no seu código:

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

Nesse trecho de código, usamos o operador de pertencimento para verificar se a substring “segredo” está presente em raw_file_content. Se estiver, imprimiremos uma mensagem no terminal.

Generalize sua verificação removendo a sensibilidade a maiúsculas/minúsculas

Por padrão, a verificação com in diferencia maiúsculas de minúsculas. Isso significa que “segredo” e “Segredo” são tratados como strings diferentes.

Para generalizar a verificação e torná-la insensível a maiúsculas e minúsculas, você precisa converter ambas as strings para letras minúsculas ou maiúsculas antes de fazer a verificação:

raw_file_content = """Oi, bem-vindo.
Esse é um arquivo especial oculto com um segredo SECRETO.
Eu não quero te contar O Segredo,
mas quero secretamente te contar que eu tenho um."""
substring = "segredo"
if substring.lower() in raw_file_content.lower():
print("Encontrado!")

Com a função lower(), convertemos tanto a substring quanto a string original para letras minúsculas antes de fazer a verificação. Agora, independentemente da combinação de maiúsculas e minúsculas, a substring será encontrada.

Aprenda mais sobre a substring

Para entender melhor como trabalhar com substrings em Python, é útil aprender mais sobre os métodos de string relacionados. Alguns dos métodos comumente usados são:

  • str.find(): retorna o índice da primeira ocorrência de uma substring em uma string.
  • str.startswith(): verifica se uma string começa com uma determinada substring.
  • str.endswith(): verifica se uma string termina com uma determinada substring.

Experimente usar esses métodos para realizar diferentes verificações de substring e explore como eles funcionam.

Encontre uma substring com condições usando regex

Quando o uso de substrings se torna mais complexo, pode ser necessário utilizar expressões regulares (regex) para realizar verificações mais avançadas em strings. O módulo re do Python oferece suporte a expressões regulares e pode ser usado para encontrar substrings com base em padrões específicos.

import re
raw_file_content = """Hi there and welcome.
This is a special hidden file with a SECRET secret.
I don't want to tell you The Secret,
but I do want to secretly tell you that I have one."""
substring = r"hi"
if re.search(substring, raw_file_content, re.IGNORECASE):
print("Encontrado!")

Nesse exemplo, usamos re.search() para encontrar a substring “hi” em raw_file_content. O modificador re.IGNORECASE torna a busca insensível a maiúsculas e minúsculas. Se a substring for encontrada, imprimimos uma mensagem.

As expressões regulares são uma poderosa ferramenta para trabalhar com strings e permitem verificações mais sofisticadas. Ao se aprofundar nesse tópico, você pode aprender a usar diferentes padrões e metacaracteres para realizar verificações mais precisas.

Encontre uma substring em uma coluna de um DataFrame do pandas

Se você estiver trabalhando com dados tabulares e precisar pesquisar substrings em uma coluna específica, o pandas facilita a tarefa. Uma abordagem mais eficiente é carregar seus dados em um DataFrame do pandas e usar métodos específicos para realizar a busca.

import pandas as pd
data = {
"texto": [
"Oi, bem-vindo.",
"Esse é um arquivo especial oculto com um segredo SECRETO.",
"Eu não quero te contar O Segredo,",
"mas quero secretamente te contar que eu tenho um."
]
}
df = pd.DataFrame(data)
substring = "segredo"
matching_rows = df[df["texto"].str.contains(substring, case=False)]
print(matching_rows)

Neste exemplo, criamos um DataFrame do pandas com uma coluna “texto” contendo várias strings. Usamos o método str.contains() para verificar se a substring “segredo” está presente em cada string da coluna “texto”. Com o parâmetro case=False, a verificação se torna insensível a maiúsculas e minúsculas.

O resultado será um novo DataFrame contendo apenas as linhas que contêm a substring “segredo” na coluna “texto”. Você pode então realizar outras operações ou manipulações nesses dados filtrados.

Conclusão

Após seguir este tutorial, você está pronto para verificar se uma string em Python contém uma substring. Você aprendeu a usar o operador de pertencimento in para realizar essa verificação e também a generalizar a verificação removendo a sensibilidade a maiúsculas e minúsculas.

Além disso, você expandiu seu conhecimento sobre substrings, aprendendo sobre métodos de string relacionados, regex e a busca em colunas de DataFrames do pandas.

Agora, você tem todas as ferramentas necessárias para manipular e verificar substrings em Python. Experimente diferentes exemplos e casos de uso para aprimorar ainda mais suas habilidades!