I den här artikeln kommer vi att diskutera hur man byter ut enstaka eller flera tecken i en sträng i Python.
Python tillhandahåller en str.replace () -funktion dvs.
str.replace(old, new , count)
Den returnerar ett nytt strängobjekt som är en kopia av befintlig sträng med ersatt innehåll. Även
- Om räkningen inte tillhandahålls kommer den att returnera en sträng med alla förekomster av ”gammal”, ersatt med ”ny” sträng.
- Om räkneparametern skickas kommer den returnera en sträng med första ”räkna” förekomster av ”gamla” sträng ersatta med ”nya” sträng.
Låt oss förstå med exempel,
Ersätt alla förekomster av givet tecken / sträng i en sträng
Antag att vi har en sträng dvs.
mainStr = "Hello, This is a sample string"
Nu kan vi ersätta alla förekomster av ’med’ X ’dvs
"""Replace all occurrences of given character or string in main string"""otherStr = mainStr.replace("s" , "X")
Innehållet i övrigt är följande,
Hello, ThiX iX a Xample Xtring
Som strängar är oföränderliga i Python, så vi kan inte ändra dess innehåll. Därför returnerar medlemsfunktioner som ersätt () en ny sträng.
Eftersom vi inte har angett räknarparametern i ersättningsfunktionen (). Så det kommer att ersätta alla förekomster av ’s’ med ’X’. Men tänk om vi bara vill ersätta de första händelserna istället för alla? Låt oss se hur man gör det,
Ersätt första n förekomster av given karaktär / substräng i en sträng
Antag att vi har en sträng dvs
mainStr = "Hello, This is a sample string"
Nu kan vi ersätta de första två förekomsterna av ’s’ med ’XXXS’ dvs
"""Replace First 2 occurrences of given character or string in main string"""otherStr = mainStr.replace("s" , "XXXS", 2)
Innehållet i otherStr är som följer,
Hello, ThiXXXS iXXXS a sample string
Eftersom vi har passerat räknarparametern som 2, så kommer endast de första två förekomsterna av ’s’ att ersättas i den returnerade kopian.
Ersätt flera tecken / strängar i en sträng
str.replace () -funktion kan bara ersätta förekomsten av en given understräng. Men tänk om vi vill ersätta flera understrängar i en given sträng?
Antag att vi har en sträng dvs
mainStr = "Hello, This is a sample string"
Hur ersätter man alla förekomster av dessa tre tecken ’s’, ’l’, ’a’ med den här strängen ’AA’?
Låt oss skapa en ny funktion över ersätt () för att göra det dvs
"""Replace a set of multiple sub strings with a new string in main string."""def replaceMultiple(mainString, toBeReplaces, newString): # Iterate over the strings to be replaced for elem in toBeReplaces : # Check if string is in the main string if elem in mainString : # Replace the string mainString = mainString.replace(elem, newString) return mainString
Det kommer att ersätta alla förekomster av strängar i Lista toBeReplaces med newString i huvudlistan mainString.
Låt oss se hur man ersätter förekomsten av med ”AA” dvs.
Innehållet i otherStr är som följer,
HeAAAAo, ThiAA iAA AA AAAAmpAAe AAtring
Komplett exempel är som följer,
Output:
String with replaced Content : Hello, ThiX iX a Xample XtringHello, ThiXXXS iXXXS a sample stringHeAAAAo, ThiAA iAA AA AAAAmpAAe AAtring