Python kontrollera om sträng innehåller en annan sträng

Python: Kontrollera om en Sträng Innehåller en Annan Sträng

Introduktion:

I programmering stöter vi ofta på situationer där vi behöver avgöra om en sträng innehåller en annan sträng. Detta är en fundamental uppgift som har många praktiska tillämpningar, till exempel strängsökning, textbehandling och datavalidering. Python erbjuder flera kraftfulla inbyggda metoder och operatorer som gör det enkelt att utföra denna kontroll. I den här artikeln kommer vi att utforska de olika sätten att kontrollera om en sträng innehåller en annan sträng i Python.

in-operatoren

Ett av de enklaste och mest direkta sätten att kontrollera om en sträng innehåller en annan sträng är att använda in-operatoren. Denna operator returnerar True om den högra strängen (sub-strängen) finns i den vänstra strängen (huvudsträngen) och False annars.

Syntax:

python
sub_str in main_str

Exempel:

python
>>> "lo" in "hello"
True
>>> "world" in "hello"
False

startswith() och endswith()

startswith()– och endswith()-metoderna kan användas för att kontrollera om en sträng börjar respektive slutar med en viss understräng. Dessa metoder returnerar True om villkoret är uppfyllt och False annars.

Syntax:

python
str.startswith(sub_str)
str.endswith(sub_str)

Exempel:

python
>>> "hello".startswith("he")
True
>>> "hello".endswith("llo")
True

find()-metoden

find()-metoden returnerar indexet för den första förekomsten av en understräng i en sträng. Om understrängen inte finns returneras -1. Du kan använda detta för att kontrollera om understrängen finns eller inte genom att jämföra returvärdet med -1.

Syntax:

python
str.find(sub_str)

Exempel:

python
>>> "hello".find("lo")
2
>>> "hello".find("world")
-1

index()-metoden

index()-metoden är liknande find()-metoden, men den genererar ett ValueError-undantag om understrängen inte finns i strängen. Du kan använda detta för att kontrollera om understrängen finns eller inte genom att wrappa anropet i ett try/except-block.

Syntax:

python
str.index(sub_str)

Exempel:

python
try:
index = "hello".index("lo")
print(True)

Understrängen hittades

except ValueError:
print(False)

Understrängen hittades inte

count()-metoden

count()-metoden returnerar antalet förekomster av en understräng i en sträng. Du kan använda detta för att kontrollera om understrängen finns eller inte genom att kontrollera om returvärdet är större än 0.

Syntax:

python
str.count(sub_str)

Exempel:

python
>>> "hello".count("lo")
1
>>> "hello".count("world")
0

match()-metoden

match()-metoden är en metod i re-modulen som används för att matcha ett reguljärt uttryck mot en sträng. Du kan använda det för att kontrollera om en understräng finns i en sträng genom att skapa ett reguljärt uttryck som matchar understrängen.

Syntax:

python
import re
re.match(pattern, str)

Exempel:

python
import re
>>> bool(re.match("lo", "hello"))
True
>>> bool(re.match("world", "hello"))
False

Slutsats:

Att kontrollera om en sträng innehåller en annan sträng är en viktig uppgift i Python-programmering. Vi har utforskat flera inbyggda metoder och operatorer som kan användas för att utföra denna kontroll, inklusive in, startswith(), endswith(), find(), index(), count() och match(). Valet av metod beror på de specifika kraven i programmet.

När du väljer vilken metod du ska använda bör du överväga följande faktorer:

* Prestanda: in-operatorn är vanligtvis den snabbaste för korta strängar.
* Flexibilitet: Reguljära uttryck ger mer flexibilitet när det gäller att matcha understrängar.
* Robusthet: index()-metoden är den mest robusta och genererar ett undantag om understrängen inte hittas.

Genom att förstå de olika metoderna och deras fördelar kan du effektivt kontrollera om en sträng innehåller en annan sträng i Python.

Vanliga frågor:

1. Vilken är den enklaste metoden för att kontrollera om en sträng innehåller en annan sträng i Python?
in-operatoren

2. Vilken metod bör jag använda för att kontrollera om en sträng börjar med en viss understräng?
startswith()-metoden

3. Vad är skillnaden mellan find()– och index()-metoderna?
find() returnerar indexet för den första förekomsten av en understräng eller -1 om den inte finns, medan index() genererar ett undantag om understrängen inte finns.

4. Hur kan jag använda reguljära uttryck för att kontrollera om en sträng innehåller en annan sträng?
– Använd re.match()-metoden för att matcha ett reguljärt uttryck mot en sträng.

5. Finns det några andra metoder för att kontrollera om en sträng innehåller en annan sträng i Python?
– Ja, det finns också index()– och rindex()-metoderna, men de är inte lika vanliga som de metoder som diskuteras i den här artikeln.

6. Vilken metod bör jag använda för att kontrollera om en sträng inte innehåller en annan sträng i Python?
– Negera resultatet av in-operatorn eller någon annan kontrollmetod, till exempel not (str in other_str).

7. Hur kan jag kontrollera om en sträng innehåller en delsträng som inte är känslig för gemener/versaler?
– Använd str.lower() eller str.upper() för att konvertera strängarna till gemener eller versaler innan du utför kontrollen.

8. Hur kan jag kontrollera om en sträng innehåller en understräng på en viss position?
– Använd str[start:end] för att extrahera delsträngen på den angivna positionen och jämför den sedan med den understräng du letar efter.