In dit artikel zullen we bespreken hoe we enkele of meerdere karakters in een string in Python kunnen vervangen.
Python biedt een str.replace () -functie, dwz
str.replace(old, new , count)
Het retourneert een nieuw stringobject dat een kopie is van een bestaande string met vervangen inhoud.
- Als count niet is opgegeven, retourneert het een string met alle exemplaren van ‘old’, vervangen door ‘new’ string.
- Als count parameter is doorgegeven, zal het geef een string terug met de eerste ‘count’ exemplaren van de ‘oude’ string vervangen door een ‘nieuwe’ string.
Laten we het aan de hand van voorbeelden begrijpen,
Vervang alle exemplaren van een gegeven teken / string in een string
Stel dat we een string hebben, bijv.
mainStr = "Hello, This is a sample string"
Laten we nu alle exemplaren van ’s vervangen ‘met’ X ‘dwz
"""Replace all occurrences of given character or string in main string"""otherStr = mainStr.replace("s" , "X")
De inhoud van otherStr is als volgt,
Hello, ThiX iX a Xample Xtring
Zoals strings zijn onveranderlijk in Python, dus we kunnen de inhoud ervan niet wijzigen. Daarom retourneert lidfuncties zoals replace () een nieuwe string.
Omdat we de parameter count niet hebben opgegeven in de functie replace (). Het zal dus alle keren dat ‘s’ voorkomt vervangen door ‘X’. Maar wat als we alleen de eerste paar exemplaren willen vervangen in plaats van alle? Laten we eens kijken hoe we dat moeten doen,
Vervang de eerste n keer dat een gegeven teken / sub-tekenreeks in een tekenreeks voorkomt
Stel dat we een tekenreeks hebben, bijv.
mainStr = "Hello, This is a sample string"
Laten we nu de eerste 2 exemplaren van ‘s’ vervangen door ‘XXXS’, dwz
"""Replace First 2 occurrences of given character or string in main string"""otherStr = mainStr.replace("s" , "XXXS", 2)
De inhoud van otherStr is als volgt,
Hello, ThiXXXS iXXXS a sample string
Aangezien we de parameter count hebben doorgegeven als 2, zullen alleen de eerste 2 exemplaren van ‘s’ worden vervangen in de geretourneerde kopie.
Vervang meerdere tekens / strings in een string
str.replace () functie kan alleen het voorkomen van een gegeven subtekenreeks vervangen. Maar wat als we meerdere subtekenreeksen in een bepaalde string willen vervangen?
Stel dat we een string hebben, bijv.
mainStr = "Hello, This is a sample string"
Nu, hoe vervangt u alle exemplaren van deze drie karakters ‘s’, ‘l’, ‘a’ door deze string ‘AA’?
Laten we een nieuwe functie maken via replace () om dat te doen, bijv.
"""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
Het zal alle exemplaren van strings in List toBeReplaces vervangen door newString in de hoofdlijst mainString.
Laten we eens kijken hoe we de exemplaren van met “AA” kunnen vervangen, dwz
De inhoud van otherStr is als volgt,
HeAAAAo, ThiAA iAA AA AAAAmpAAe AAtring
Het volledige voorbeeld is als volgt,
Uitvoer:
String with replaced Content : Hello, ThiX iX a Xample XtringHello, ThiXXXS iXXXS a sample stringHeAAAAo, ThiAA iAA AA AAAAmpAAe AAtring