Python: Att Undersöka Förekomsten av en Delsträng i en Sträng
Inledning:
Inom programmering är det vanligt att behöva fastställa om en given sträng inkluderar en annan, mindre sträng. Denna grundläggande uppgift är central i många sammanhang, såsom textsökning, manipulation av textdata och validering. Python erbjuder ett flertal kraftfulla inbyggda verktyg och operatorer som gör det enkelt att genomföra denna kontroll. I den här genomgången kommer vi att granska olika metoder för att verifiera om en sträng innehåller en annan sträng i Python.
Användning av ’in’-operatorn
Ett av de enklaste och mest direkta sätten att avgöra om en sträng rymmer en annan är genom att använda in
-operatorn. Denna operator ger resultatet True
om den sträng som står till höger (delsträngen) återfinns i den sträng som står till vänster (huvudsträngen). I annat fall returneras False
.
Form:
python
del_str in huvud_str
Exempel:
python
>>> "lo" in "hello"
True
>>> "värld" in "hello"
False
Metoderna startswith() och endswith()
Metoderna startswith()
och endswith()
används för att kontrollera om en sträng börjar respektive slutar med en specifik delsträng. Båda metoderna returnerar True
om villkoret är uppfyllt, annars False
.
Form:
python
strang.startswith(del_strang)
strang.endswith(del_strang)
Exempel:
python
>>> "hello".startswith("he")
True
>>> "hello".endswith("llo")
True
Metoden find()
Metoden find()
ger dig indexpositionen för första förekomsten av en delsträng inom en huvudsträng. Om delsträngen inte hittas returneras värdet -1
. Detta kan utnyttjas för att avgöra om delsträngen finns genom att jämföra returvärdet med -1
.
Form:
python
strang.find(del_strang)
Exempel:
python
>>> "hello".find("lo")
2
>>> "hello".find("värld")
-1
Metoden index()
Metoden index()
liknar find()
, men den utlöser ett ValueError
-fel om delsträngen inte hittas. För att kontrollera om delsträngen finns, kan metoden anropas inom ett try/except
-block.
Form:
python
strang.index(del_strang)
Exempel:
python
try:
index = "hello".index("lo")
print(True)
Hittade delsträngen
except ValueError:
print(False)
Delsträngen hittades inte
Metoden count()
Metoden count()
räknar antalet gånger en delsträng förekommer inom en sträng. Den kan användas för att se om delsträngen finns genom att kontrollera om returvärdet är högre än 0.
Form:
python
strang.count(del_strang)
Exempel:
python
>>> "hello".count("lo")
1
>>> "hello".count("värld")
0
Metoden match()
Metoden match()
tillhör re
-modulen och används för att matcha reguljära uttryck mot en sträng. Den kan utnyttjas för att leta efter en delsträng genom att skapa ett reguljärt uttryck som matchar delsträngen.
Form:
python
import re
re.match(mönster, strang)
Exempel:
python
import re
>>> bool(re.match("lo", "hello"))
True
>>> bool(re.match("värld", "hello"))
False
Sammanfattning:
Att undersöka om en sträng innehåller en annan är en viktig operation inom Python-programmering. Vi har granskat flera inbyggda metoder och operatorer för att utföra detta, inklusive in
, startswith()
, endswith()
, find()
, index()
, count()
och match()
. Valet av metod beror på de specifika kraven.
Vid valet av metod bör du beakta följande aspekter:
* Prestanda: in
-operatorn är i allmänhet den snabbaste för korta strängar.
* Flexibilitet: Reguljära uttryck erbjuder ökad flexibilitet i matchningen av delsträngar.
* Robusthet: index()
-metoden är robust och utlöser ett fel om delsträngen inte finns.
Genom att förstå dessa metoder och deras fördelar kan du effektivt kontrollera förekomsten av en delsträng i Python.
Vanliga frågor:
1. Vilken är den enklaste metoden för att avgöra om en sträng innehåller en annan sträng i Python?
– in
-operatorn.
2. Vilken metod bör användas för att kontrollera om en sträng börjar med en viss delsträng?
– startswith()
-metoden.
3. Vad skiljer metoderna find()
och index()
åt?
– find()
returnerar indexet för första förekomsten eller -1
om den saknas, medan index()
genererar ett fel om delsträngen inte finns.
4. Hur kan reguljära uttryck användas för att se om en sträng innehåller en annan sträng?
– Använd re.match()
för att matcha ett reguljärt uttryck mot en sträng.
5. Finns det ytterligare metoder för att kontrollera om en sträng innehåller en annan sträng i Python?
– Ja, det finns även metoderna index()
och rindex()
, men de används inte lika ofta som de som nämnts.
6. Vilken metod bör användas för att se om en sträng *inte* innehåller en annan sträng i Python?
– Använd negation av in
-operatorn eller annan metod, som not (str in other_str)
.
7. Hur kan jag undersöka förekomsten av en delsträng utan att beakta versaler och gemener?
– Använd str.lower()
eller str.upper()
för att konvertera strängarna innan undersökningen.
8. Hur kan jag undersöka om en sträng innehåller en delsträng på en specifik position?
– Använd str[start:slut]
för att extrahera en delsträng och jämför den sedan med delsträngen du letar efter.