Manipulação de strings é uma tarefa comum em qualquer linguagem de programação. Python oferece duas maneiras comuns de verificar se uma string contém outra string.
O Python verifica se a string contém outra string
O string do Python suporta o operador in. Portanto, podemos usá-lo para verificar se uma string faz parte de outra string ou não. A sintaxe do operador in é:
sub in str
Ele retorna True
se a sub-string faz parte de “str”, caso contrário, retorna False
. Vamos ver alguns exemplos de uso do operador in
em Python.
str1 = 'I love Python Programming'
str2 = 'Python'
str3 = 'Java'
print(f'"{str1}" contains "{str2}" = {str2 in str1}')
print(f'"{str1}" contains "{str2.lower()}" = {str2.lower() in str1}')
print(f'"{str1}" contains "{str3}" = {str3 in str1}')
if str2 in str1:
print(f'"{str1}" contains "{str2}"')
else:
print(f'"{str1}" does not contain "{str2}"')
Saída:
"I love Python Programming" contains "Python" = True
"I love Python Programming" contains "python" = False
"I love Python Programming" contains "Java" = False
"I love Python Programming" contains "Python"
Se você não está familiarizado com strings prefixadas com f em Python, é uma nova maneira de formatação de string introduzida no Python 3.6. Você pode ler mais sobre isso em strings prefixadas com f em Python.
Quando usamos o operador in, internamente ele chama a função __contains__(). Podemos usar esta função diretamente também, no entanto, é recomendado usar o operador in por questões de legibilidade.
s = 'abc'
print('s contains a =', s.__contains__('a'))
print('s contains A =', s.__contains__('A'))
print('s contains X =', s.__contains__('X'))
Saída:
s contains a = True
s contains A = False
s contains X = False
Usando find() para verificar se uma string contém outra substring
Também podemos usar a função find() de string para verificar se uma string contém ou não uma substring. Esta função retorna a primeira posição do índice onde a substring é encontrada, caso contrário retorna -1.
str1 = 'I love Python Programming'
str2 = 'Python'
str3 = 'Java'
index = str1.find(str2)
if index != -1:
print(f'"{str1}" contains "{str2}"')
else:
print(f'"{str1}" does not contain "{str2}"')
index = str1.find(str3)
if index != -1:
print(f'"{str1}" contains "{str3}"')
else:
print(f'"{str1}" does not contain "{str3}"')
Saída:
"I love Python Programming" contains "Python"
"I love Python Programming" does not contain "Java"
Você pode conferir o script Python completo e mais exemplos em Python do nosso Repositório GitHub.
Source:
https://www.digitalocean.com/community/tutorials/python-check-if-string-contains-another-string