Pular para o conteúdo

Como Verificar se uma String Python Contém um Substring?

[

Como Verificar se uma String em Python Contém uma Substring

Se você precisa verificar se uma string contém uma substring em Python, pode usar o operador de associação in. Esta é a forma recomendada de confirmar a existência de uma substring em uma string em Python.

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 associação in do Python. Em Python, esta é a forma recomendada de confirmar a existência de uma substring em uma string:

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."""
"secret" in raw_file_content

O operador in dá 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 inglês.

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

"secret" 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 essa sintaxe intuitiva em declarações condicionais para tomar decisões em seu código:

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

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

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

Para generalizar a verificação e remover a sensibilidade a maiúsculas e minúsculas, você pode converter tanto a string quanto a substring para minúsculas ou maiúsculas usando o método lower() ou upper(), respectivamente. Dessa forma, você pode fazer uma comparação sem levar em consideração a diferença de maiúsculas e minúsculas.

string = "Hello, World!"
substring = "world"
if substring.lower() in string.lower():
print("Encontrado!")

Nesse exemplo, convertemos tanto a string quanto a substring para minúsculas usando o método lower(). Em seguida, verificamos se a substring está presente na string convertida para minúsculas. Independentemente de a string original ser “Hello, World!” e a substring ser “world”, a verificação retornará True porque não faz diferenciação entre maiúsculas e minúsculas.

Saiba Mais Sobre a Substring

No Python, você pode usar o método find() para encontrar a posição de uma substring em uma string. Esse método retorna o índice da primeira ocorrência da substring na string (ou -1 se a substring não for encontrada).

string = "Hello, World!"
substring = "o"
position = string.find(substring)
if position != -1:
print(f"Substring encontrada na posição {position}")
else:
print("Substring não encontrada")

Neste exemplo, usamos o método find() para encontrar a posição da primeira ocorrência da substring “o” na string “Hello, World!“. Como a substring está presente, o método retorna o índice 4, que é a posição da primeira letra “o” na string.

Encontre uma Substring com Condições Usando Regex

Se você precisa fazer uma busca mais avançada, pode usar expressões regulares (regex) para encontrar substrings que correspondam a determinados padrões. A biblioteca re do Python fornece suporte para trabalhar com expressões regulares.

Por exemplo, suponha que você tenha uma lista de palavras e deseje encontrar todas as palavras que comecem com a letra “a”:

import re
words = ["apple", "banana", "orange", "avocado", "kiwi"]
pattern = r"^a\w+"
matching_words = [word for word in words if re.match(pattern, word)]
print(matching_words)

Neste exemplo, usamos a regex r"^a\w+" para encontrar todas as palavras na lista que começam com a letra “a”. A regex consiste nos seguintes elementos:

  • ^: âncora de início de linha
  • a: a letra “a” literal
  • \w+: um ou mais caracteres alfanuméricos (letras e números)

O resultado impresso será ['apple', 'avocado'], pois essas são as palavras na lista que começam com a letra “a”.

Encontre uma Substring em uma Coluna de um DataFrame do pandas

Se você estiver trabalhando com dados tabulares usando o pandas, poderá usar o método str.contains() para procurar substrings em uma coluna de um DataFrame.

import pandas as pd
data = {
"Name": ["John", "Jane", "Alex", "Linda"],
"Age": [30, 25, 35, 40]
}
df = pd.DataFrame(data)
name_contains_a = df["Name"].str.contains("a")
print(df[name_contains_a])

Neste exemplo, criamos um DataFrame com duas colunas: “Name” e “Age”. Em seguida, usamos df["Name"].str.contains("a") para criar uma série booleana indicando se cada valor da coluna “Name” contém a substring “a”. Em seguida, imprimimos as linhas do DataFrame em que a condição é verdadeira.

Conclusão

Verificar se uma string contém uma substring em Python é uma tarefa comum no desenvolvimento de programas. Neste artigo, você aprendeu como utilizar o operador de associação in para realizar essa verificação, além de aprender sobre métodos adicionais para casos específicos, como a remoção da sensibilidade a maiúsculas e minúsculas, a busca utilizando expressões regulares e a procura em colunas de DataFrames do pandas. Com essas ferramentas, você pode manipular e analisar strings de maneira eficiente em seus projetos Python.