Stringmanipulatie is een veelvoorkomende taak in elke programmeertaal. Python biedt twee gangbare manieren om te controleren of een string een andere string bevat.
Python controleert of string een andere string bevat
Python-string ondersteunt in-operator. Dus we kunnen het gebruiken om te controleren of een string deel uitmaakt van een andere string of niet. De in-operatorsyntax is:
sub in str
Het retourneert True
als de “sub”-string deel uitmaakt van “str”, anders retourneert het False
. Laten we enkele voorbeelden bekijken van het gebruik van in
-operator in 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}"')
Uitvoer:
"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"
Als je niet bekend bent met f-geprefixeerde strings in Python, het is een nieuwe manier voor stringformatting geïntroduceerd in Python 3.6. Je kunt er meer over lezen bij f-strings in Python.
Wanneer we de in-operator gebruiken, roept het intern de __contains__()-functie aan. We kunnen deze functie ook rechtstreeks gebruiken, maar het wordt aanbevolen om de in-operator te gebruiken omwille van de leesbaarheid.
s = 'abc'
print('s contains a =', s.__contains__('a'))
print('s contains A =', s.__contains__('A'))
print('s contains X =', s.__contains__('X'))
Uitvoer:
s contains a = True
s contains A = False
s contains X = False
Gebruik find() om te controleren of een string een andere substring bevat
We kunnen ook de string find() functie gebruiken om te controleren of een string een substring bevat of niet. Deze functie retourneert de eerste indexpositie waar de substring wordt gevonden, anders retourneert deze -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}"')
Output:
"I love Python Programming" contains "Python"
"I love Python Programming" does not contain "Java"
Je kunt het volledige Python-script en meer Python-voorbeelden bekijken op onze GitHub Repository.
Source:
https://www.digitalocean.com/community/tutorials/python-check-if-string-contains-another-string