Python: Jak nahradit jeden nebo více znaků v řetězci?

V tomto článku se budeme zabývat tím, jak nahradit jeden nebo více znaků v řetězci v Pythonu.

Python poskytuje funkci str.replace () tj.

str.replace(old, new , count)

Vrací nový objekt řetězce, který je kopií existujícího řetězce s nahrazeným obsah. Také

  • Pokud count neposkytuje, vrátí řetězec se všemi výskyty řetězce „old“, který bude nahrazen řetězcem „new“.
  • Pokud je předán parametr count, bude vrací řetězec s prvními ‚count‘ výskyty ‚starého‘ řetězce nahrazeného ‚novým‘ řetězcem.

Pochopme příklady,

Nahraďte všechny výskyty daného znaku / string v řetězci

Předpokládejme, že máme řetězec, tj.

mainStr = "Hello, This is a sample string"

Pojďme nyní nahradit všechny výskyty ‚s ‚with‘ X ‚ie

"""Replace all occurrences of given character or string in main string"""otherStr = mainStr.replace("s" , "X") 

Obsah otherStr je následující,

Hello, ThiX iX a Xample Xtring

jako řetězce jsou v Pythonu neměnné, takže nemůžeme měnit jejich obsah. Proto členské funkce jako replace () vrací nový řetězec.
Protože jsme ve funkci replace () nezadali parametr count. Nahradí tedy všechny výskyty písmen „s“ znakem „X“. Ale co když chceme místo všech nahradit pouze několik prvních výskytů? Podívejme se, jak to udělat,

Nahradit prvních n výskytů daného znaku / podřetězce v řetězci

Předpokládejme, že máme řetězec tj.

mainStr = "Hello, This is a sample string"

Nyní umožňuje nahradit první 2 výskyty ‚s‘ za ‚XXXS‘ tj.

"""Replace First 2 occurrences of given character or string in main string"""otherStr = mainStr.replace("s" , "XXXS", 2) 

Obsah otherStr je následující,

Hello, ThiXXXS iXXXS a sample string

Protože jsme předali parametr count jako 2, budou ve vrácené kopii nahrazeny pouze první 2 výskyty ‚s‘.

Nahradit více znaků / strings v řetězci

Funkce str.replace () může nahradit výskyty pouze jednoho daného podřetězce. Ale co když chceme v daném řetězci nahradit více dílčích řetězců?

Předpokládejme, že máme řetězec tj.

mainStr = "Hello, This is a sample string"

Jak nyní nahradit všechny výskyty těchto tří znaků „s“, „l“, „a“ tímto řetězcem „AA“?
Vytvořme novou funkci over replace (), abychom to mohli udělat, tj.

"""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

Nahradí všechny výskyty řetězců v List toBeReplaces novým řetězcem v hlavním daném seznamu mainString.
Podívejme se, jak nahradit výskyty řetězcem „AA“, tj.
Obsah otherStr je následující,

HeAAAAo, ThiAA iAA AA AAAAmpAAe AAtring

Celý příklad je následující,
Výstup:

String with replaced Content : Hello, ThiX iX a Xample XtringHello, ThiXXXS iXXXS a sample stringHeAAAAo, ThiAA iAA AA AAAAmpAAe AAtring

Write a Comment

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *