Pular para o conteúdo

Como Usar pycontains para Buscar Palavras-chave em Python?

[

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

por Martin Breuss

Se você é novo na programação ou vem de uma linguagem de programação diferente do Python, pode estar procurando a melhor maneira de verificar se uma string contém outra string em Python.

Neste tutorial, você se concentrará na maneira mais Pythonica de lidar com essa tarefa, usando o operador de adesão in. Além disso, você aprenderá a identificar os métodos corretos de string para casos de uso relacionados, mas diferentes.

Por fim, você também aprenderá como encontrar substrings em colunas de pandas. Isso é útil se você precisar pesquisar dados de um arquivo CSV. Você poderia usar a abordagem que aprenderá na próxima seção, mas se estiver trabalhando com dados tabulares, é melhor carregar os dados em um DataFrame do pandas e pesquisar por substrings em pandas.

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

Se você precisa verificar se uma string contém uma substring, use o operador de adesão in do Python. Em Python, essa é a maneira recomendada de confirmar a existência de uma substring em uma string:

raw_file_content = """Oi, bem-vindo.
Esta é um arquivo oculto especial com um segredo SECRETO.
Não quero contar o Segredo,
mas quero dizer secretamente que eu tenho um."""
"segredo" in raw_file_content

A saída será True.

O operador de adesão in fornece 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 se lê como em inglês.

Observação: Se você deseja verificar se a substring não está presente na string, pode usar not in:

"segredo" not in raw_file_content

A saída será False.

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

  • True se o Python encontrou a substring
  • False se o Python não encontrou a substring
if "segredo" in raw_file_content:
print("Encontrado!")

A saída será Encontrado!.

Neste trecho de código, você usa o operador de adesão para verificar se "segredo" é uma substring de raw_file_content. Se for, você imprimirá uma mensagem no terminal.

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

Às vezes, você pode querer verificar se uma string contém uma substring, independentemente de a maiúscula ou minúscula ser diferente. Para fazer isso, você pode converter as duas strings para todas as minúsculas ou todas as maiúsculas antes de realizar a verificação.

Por exemplo:

string_1 = "Python é uma linguagem de programação poderosa"
string_2 = "PYTHON"
if string_2.lower() in string_1.lower():
print("Encontrado!")

A saída será Encontrado!.

Neste exemplo, você converte string_1 e string_2 para minúsculas usando o método lower() antes de realizar a verificação usando o operador de adesão in. Como resultado, mesmo que a capitalização seja diferente, a verificação retornará True porque as duas strings agora estão em minúsculas.

Saiba mais sobre a substring

Você pode querer saber mais sobre a substring encontrada em uma string, como a posição em que ela aparece. Para fazer isso, você pode usar o método find(). O método find() retorna o índice da primeira ocorrência da substring na string, ou -1 se a substring não for encontrada.

Por exemplo:

string = "Python é uma linguagem de programação poderosa"
substring = "linguagem"
index = string.find(substring)
print(f"A substring '{substring}' começa no índice {index}")

A saída será A substring 'linguagem' começa no índice 10.

Neste exemplo, você usa o método find() para encontrar a posição da primeira ocorrência de "linguagem" em string. O valor retornado é o índice onde a substring começa.

Encontre uma substring com condições usando regex

Se você precisa de uma correspondência mais complexa de padrões, pode usar expressões regulares (regex). O módulo re em Python fornece suporte para trabalhar com expressões regulares.

Por exemplo, vamos supor que você deseja verificar se uma string contém um número de telefone no formato XXXX-XXXX. Você pode usar regex para encontrar uma correspondência com um padrão específico.

import re
string = "Entre em contato comigo pelo telefone 1234-5678 ou pelo e-mail [email protected]"
pattern = r"\d{4}-\d{4}"
result = re.search(pattern, string)
if result:
print("Número de telefone encontrado!")

A saída será Número de telefone encontrado!.

Neste exemplo, você usa a função re.search() para procurar uma correspondência da expressão regular "\d{4}-\d{4}" em string. Essa expressão regular corresponde a qualquer sequência de quatro dígitos seguida por um hífen e outros quatro dígitos. Se houver uma correspondência, você imprime a mensagem “Número de telefone encontrado!“.

Encontre uma substring em uma coluna do DataFrame do pandas

Por exemplo, vamos supor que você tenha um arquivo CSV com uma coluna chamada “Descrição” e queira verificar se cada entrada contém a substring “Python”. Você pode usar o método str.contains() do pandas para fazer essa verificação.

import pandas as pd
df = pd.read_csv("dados.csv")
substring = "Python"
contains_substring = df["Descrição"].str.contains(substring)
print(df[contains_substring])

Neste exemplo, você lê os dados de um arquivo CSV usando o método read_csv() do pandas e, em seguida, usa o método str.contains() para criar uma máscara booleana que indica quais entradas da coluna “Descrição” contêm a substring “Python”. Por fim, você filtra o DataFrame usando essa máscara booleana e imprime as linhas que contêm a substring.

Conclusão

Neste tutorial, você aprendeu diferentes maneiras de verificar se uma string em Python contém outra string. Usando o operador in, você pode realizar uma verificação simples e legível da existência de uma substring em uma string. Além disso, você aprendeu a remover a sensibilidade a maiúsculas e minúsculas ao realizar a verificação e como usar expressões regulares para encontrar padrões específicos em uma string.

Se você estiver trabalhando com dados tabulares, é recomendável carregar seus dados em um DataFrame do pandas e usar os métodos fornecidos pelo pandas para pesquisar substrings em colunas.

Agora você tem as ferramentas necessárias para verificar se uma string contém uma substring em Python. Use essas técnicas em seus projetos para tomar decisões lógicas com base nos dados de texto que você está manipulando.