7 maneiras de verificar se uma string Python contém uma substring

Trabalhar com strings é uma tarefa comum em Python. Freqüentemente, você precisa descobrir se uma string contém outra string.

Os métodos mais simples para verificar se uma string Python contém uma substring incluem o operador 'in', a função find() e o método index(). Cenários mais complexos podem ser resolvidos com expressões regulares ou uma biblioteca externa como Pandas.

Este artigo mostra a você:

  • quatro métodos simples

  • duas funções regex mais complexas

  • um método usando a biblioteca Pandas

Você aprenderá cada técnica por meio de exemplos de sua sintaxe e uso. Você também receberá dicas sobre qual método é melhor para diferentes requisitos.

Vamos começar!

Índice

Noções básicas de strings Python

Uma string em Python é uma sequência de caracteres usada para representar dados baseados em texto. Eles podem incluir letras, dígitos, símbolos e espaços em branco.

É um dos tipos de dados internos do Python e pode ser criado usando:

  • aspas simples (' ')

  • aspas duplas (" ")

  • aspas triplas (”' ”' ou “”” “””)

As strings são indexadas, o que significa que você pode acessar caracteres específicos referenciando seu número de índice. O índice inicial é 0, o que significa que o primeiro caractere de uma string tem um índice de 0, o segundo tem um índice de 1 e assim por diante.

Em seguida, veremos maneiras de verificar substrings.

4 maneiras mais simples de verificar substrings

Python fornece muitas maneiras de verificar se uma determinada substring existe dentro de uma string maior. Alguns são mais complexos do que outros. Para as verificações mais básicas, os métodos mais simples são o operador in ou um dos três métodos de string.

  1. no operador

  2. método find()

  3. método index()

  4. método contador()

7 maneiras de verificar se uma string Python contém uma substring

1. No Operador

O operador 'in' em Python é uma maneira simples e intuitiva de verificar se uma string existe dentro de outra string. Este operador verifica a associação e retorna um valor booleano:

  • Verdadeiro se a substring for encontrada dentro da string principal

  • Falso se não for

Aqui está um código de exemplo:

s = "Hello, world!"
sub = "world"
result = sub in s
print(result)  # Output: True

O operador 'in' diferencia maiúsculas de minúsculas. Isso significa que ele trata caracteres minúsculos e maiúsculos como diferentes. O código acima não encontrará a substring “hello”, então o operador retorna false.

Se você deseja executar uma verificação que não diferencia maiúsculas de minúsculas, pode converter a string principal e a substring para o mesmo caso antes de executar a verificação:

s = "Hello, world!"
sub = "hello"
result = sub.lower() in s.lower()
print(result)  # Output: True

A desvantagem do operador in é que ele não fornece a posição da substring dentro da string principal. Para isso, você precisaria de outro método nesta seção. Leia…

2. Método Find()

O método find() retorna o primeiro índice no qual a substring aparece, ou -1 se a substring não for encontrada.

Você chama o método find() em uma string s , passando a substring sub como um argumento. Aqui está um exemplo:

s = "Hello, world!"
sub = "world"
index = s.find(sub)

if index != -1:
     print("Found at index:", index)  # Output: Found at index: 7
else:
     print("Not found")

Você pode opcionalmente especificar um índice inicial ou final para limitar sua pesquisa. A desvantagem desse método é que ele para na primeira ocorrência.

3. Método Index()

O método index() é bastante semelhante ao método find() , exceto que gera um ValueError quando a substring não é encontrada. Isso significa que você deve agrupar a chamada em uma seção Try/Exception.

Para usar o método index() , chame-o em uma string s e passe a substring sub como um argumento.

s = "Hello, world!"
sub = "world"

try: 
     index = s.index(sub)
     print("Found at index:", index)  # Output: Found at index: 7
except ValueError:
     print("Not found")

Este método também para na primeira substring dentro do texto.

4. Método Count()

O método .count() conta quantas vezes uma substring ocorre na string original. Ele retorna um inteiro representando essa contagem. Se a substring não for encontrada na string principal, ela retornará 0.

Aqui está um exemplo simples que procura a letra “o” no texto “Hello, world!”:

s = "Hello, world!"
sub = "o"
print(s.count(sub))  # Output:2

2 maneiras de combinar strings com expressões regulares

O uso de expressões regulares (regex) é um pouco mais complexo do que os métodos da seção anterior. No entanto, eles oferecem mais opções para pesquisar e analisar o texto com o qual você está lidando.

Duas das maneiras mais fáceis dentro do módulo re são:

  1. procurar()

  2. encontrar tudo()

7 maneiras de verificar se uma string Python contém uma substring

1. re.Search()

A função search() no módulo re procura um padrão em uma determinada string e retorna um objeto de correspondência se uma correspondência for encontrada. Caso contrário, retorna None .

Por padrão, a função diferencia maiúsculas de minúsculas. Você pode usar o sinalizador re.IgnoreCase para evitar a distinção entre maiúsculas e minúsculas.

Aqui está um exemplo simples que usa instruções condicionais com base na localização da string:

import re
pattern = "python"
text = "I love Python programming"
match = re.search(pattern, text, re.IGNORECASE)

if match: 
     print("Pattern found")
else:
     print("Pattern not found")

Observe que esse método localiza a primeira correspondência e interrompe a pesquisa. Se você deseja encontrar todas as correspondências, o próximo nesta lista é para você.

2. re.Findall()

Este método localiza todas as ocorrências de um padrão de pesquisa em uma determinada string e retorna uma lista contendo todas as correspondências.

Este exemplo usa um padrão que corresponde a um ou mais dígitos em uma string. A string de texto “123, 456, 789” contém três sequências de dígitos.

import re 

pattern = "d+" 
text = "123, 456, 789" 
numbers = re.findall(pattern, text) 

print(numbers)

Esta é a resposta do código de exemplo: ['123', '456', '789'].

Como encontrar substrings com pandas

7 maneiras de verificar se uma string Python contém uma substring

Pandas é uma popular biblioteca de análise e manipulação de dados de código aberto para Python. Ele fornece estruturas de dados e funções necessárias para manipular e analisar dados estruturados.

Uma das estruturas de dados primárias fornecidas pelo Pandas é o DataFrame. Você pode usar essa estrutura de dados versátil para verificar uma string dentro de outra.

A vantagem do Pandas é que ele fornece pacotes de código que você teria que escrever extensivamente em outras linguagens de programação. Especificamente, muito poder está contido na função contém.

Função str.contains() em Pandas

O método str.contains() testa se um padrão especificado ou expressão regular está contido em uma string de uma coluna DataFrame.

Aqui está um exemplo que importa a biblioteca e procura uma string dentro de uma lista de strings:

import pandas as pd

# Creating a sample DataFrame 
data = {'fruits': ['apple', 'banana', 'cherry', 'watermelon', 'orange']} 
df = pd.DataFrame(data) 

# Searching for substrings in the 'fruits' column 
has_an = df['fruits'].str.contains(pat='an', regex=False)

# Filtering the DataFrame based on the search results 
filtered_df = df[has_an] 
print(filtered_df)

Neste exemplo, procuramos a substring 'an' na coluna 'frutas' e filtramos o DataFrame de acordo. A saída seria:

  • 1 banana

  • 4 laranja

Se você está procurando mais exemplos do que os Pandas podem fazer, confira este vídeo:

Dicas para escolher um método específico em Python

A escolha do método depende em grande parte dos requisitos específicos de sua tarefa.

Aqui estão quatro razões para escolher um dos métodos que você aprendeu neste artigo, além de um método bônus que você aprenderá em outro lugar neste blog:

  1. Velocidade de processamento

  2. Você precisa saber a localização da substring

  3. Você precisa saber o número de ocorrências da substring

  4. Você quer combinar padrões complexos

  5. Fazendo análise de texto

1. Velocidade de Processamento

7 maneiras de verificar se uma string Python contém uma substring

O operador 'in' é a melhor escolha se você simplesmente quiser saber se existe uma substring dentro de uma string.

É simples, intuitivo e rápido para esse fim. No entanto, ele não fornece informações sobre o local ou a contagem da substring.

2. Localização da Substring

Use os métodos .find() ou .index() se precisar saber a posição da primeira ocorrência de uma substring dentro de uma string.

Ambos retornam o índice da primeira ocorrência da substring.

3. Contagem de Substring

Use o método .count() quando quiser saber quantas vezes uma substring ocorre em uma string.

4. Padrões Complexos

Se você precisar corresponder a padrões complexos ou realizar pesquisas que não diferenciam maiúsculas de minúsculas, as expressões regulares são as mais flexíveis. A função re.search() pode lidar com padrões além de substrings simples e pode facilmente realizar pesquisas que não diferenciam maiúsculas de minúsculas.

No entanto, as expressões regulares podem ser um exagero para verificações simples de substring e também podem ser mais lentas e complexas de usar e manter.

5. Realizando Análise de Texto

Confira nosso artigo sobre análise de texto em Python , que mostra como trabalhar com a biblioteca textblob.

Você pode usar a função .tags para verificar as partes do discurso ou a função .ngram para localizar palavras que freqüentemente aparecem juntas em um documento.

Pensamentos finais

Você aprendeu sete métodos para verificar se uma palavra ou objeto de string está contido em outro. Isso incluía operadores de associação, funções internas, regex e funções Pandas.

Cada método é correto para algumas situações, mas não para todas. Use este artigo como uma folha de dicas conforme você domina a linguagem de programação Python e usa a melhor solução para sua tarefa de análise de string.

Lembre-se de que não existe um método único para todos. Cada abordagem tem suas próprias vantagens e peculiaridades, portanto, sinta-se à vontade para escolher aquela que se adapta ao seu estilo ou ao problema específico que está tentando resolver. No final das contas, o Python tem tudo a ver com facilitar sua vida, então abrace sua flexibilidade!

Leave a Comment

Colunas calculadas no SharePoint | Uma visão geral

Colunas calculadas no SharePoint | Uma visão geral

Descubra a importância das colunas calculadas no SharePoint e como elas podem realizar cálculos automáticos e obtenção de dados em suas listas.

Atributos pré-atentivos: como isso pode afetar seu relatório

Atributos pré-atentivos: como isso pode afetar seu relatório

Descubra todos os atributos pré-atentivos e saiba como isso pode impactar significativamente seu relatório do LuckyTemplates

Calcular Dias de Estoque Zero – LuckyTemplates Inventory Management Insights

Calcular Dias de Estoque Zero – LuckyTemplates Inventory Management Insights

Aprenda a contar o número total de dias em que você não tinha estoque por meio dessa técnica eficaz de gerenciamento de inventário do LuckyTemplates.

Usando exibições de gerenciamento dinâmico (DMV) no DAX Studio

Usando exibições de gerenciamento dinâmico (DMV) no DAX Studio

Saiba mais sobre as exibições de gerenciamento dinâmico (DMV) no DAX Studio e como usá-las para carregar conjuntos de dados diretamente no LuckyTemplates.

Variáveis ​​e expressões dentro do editor do Power Query

Variáveis ​​e expressões dentro do editor do Power Query

Este tutorial irá discutir sobre Variáveis e Expressões dentro do Editor do Power Query, destacando a importância de variáveis M e sua sintaxe.

Como calcular a diferença em dias entre compras usando o DAX no LuckyTemplates

Como calcular a diferença em dias entre compras usando o DAX no LuckyTemplates

Aprenda a calcular a diferença em dias entre compras usando DAX no LuckyTemplates com este guia completo.

Calculando a média no LuckyTemplates: isolando os resultados do dia da semana ou do fim de semana usando o DAX

Calculando a média no LuckyTemplates: isolando os resultados do dia da semana ou do fim de semana usando o DAX

Calcular uma média no LuckyTemplates envolve técnicas DAX para obter dados precisos em relatórios de negócios.

O que é self em Python: exemplos do mundo real

O que é self em Python: exemplos do mundo real

O que é self em Python: exemplos do mundo real

Como salvar e carregar um arquivo RDS em R

Como salvar e carregar um arquivo RDS em R

Você aprenderá como salvar e carregar objetos de um arquivo .rds no R. Este blog também abordará como importar objetos do R para o LuckyTemplates.

Primeiros N dias úteis revisitados - uma solução de linguagem de codificação DAX

Primeiros N dias úteis revisitados - uma solução de linguagem de codificação DAX

Neste tutorial de linguagem de codificação DAX, aprenda como usar a função GENERATE e como alterar um título de medida dinamicamente.