Manipulação de strings é uma tarefa comum em qualquer linguagem de programação. O Python oferece duas maneiras comuns de verificar se uma string contém outra string.
A string em 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 substring “sub” fizer 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}"')
Resultado:
"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 estiver familiarizado com strings prefixadas por “f” em Python, é uma nova maneira de formatação de strings introduzida no Python 3.6. Você pode ler mais sobre isso em f-strings em Python.
Ao usarmos 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'))
Resultado:
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 uma substring ou não. Essa 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 completo em Python e mais exemplos de Python em nosso Repositório GitHub.
Source:
https://www.digitalocean.com/community/tutorials/python-check-if-string-contains-another-string