Python controleer of string een andere string bevat

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