Python: come sostituire uno o più caratteri in una stringa?

In questo articolo discuteremo come sostituire uno o più caratteri in una stringa in Python.

Python fornisce una funzione str.replace (), ad esempio

str.replace(old, new , count)

Restituisce un nuovo oggetto stringa che è una copia della stringa esistente con sostituito soddisfare. Inoltre,

  • Se count non è fornito, restituirà una stringa con tutte le occorrenze di “old”, sostituita con “new” string.
  • Se viene passato il parametro count, restituisce una stringa con le prime occorrenze “conteggio” della stringa “vecchia” sostituita con una stringa “nuova”.

Comprendiamo con esempi,

Sostituisci tutte le occorrenze di un dato carattere / stringa in una stringa

Supponiamo di avere una stringa, ad esempio

mainStr = "Hello, This is a sample string"

Ora, sostituiamo tutte le occorrenze di ‘s “with” X “ie

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

Il contenuto di otherStr è il seguente,

Hello, ThiX iX a Xample Xtring

As le stringhe sono immutabili in Python, quindi non possiamo modificarne il contenuto. Pertanto le funzioni membro come replace () restituiscono una nuova stringa.
Poiché non abbiamo fornito il parametro count nella funzione replace (). Quindi, sostituirà tutte le occorrenze di “s” con “X”. Ma cosa succede se vogliamo sostituire solo le prime poche occorrenze invece di tutte? Vediamo come farlo,

Sostituisci le prime n occorrenze di un dato carattere / sottostringa in una stringa

Supponiamo di avere una stringa, ad esempio

mainStr = "Hello, This is a sample string"

Ora, sostituiamo le prime 2 occorrenze di “s” con “XXXS”, ad esempio

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

Il contenuto di otherStr è il seguente,

Hello, ThiXXXS iXXXS a sample string

Poiché abbiamo passato il parametro count come 2, solo le prime 2 occorrenze di “s” verranno sostituite nella copia restituita.

Sostituisci più caratteri / stringhe in una stringa

La funzione str.replace () può sostituire solo le occorrenze di una data sottostringa. Ma cosa succede se vogliamo sostituire più sottostringhe in una determinata stringa?

Supponiamo di avere una stringa, ad esempio

mainStr = "Hello, This is a sample string"

Ora, come sostituire tutte le occorrenze di questi tre caratteri “s”, “l”, “a” con questa stringa “AA”?
Creiamo una nuova funzione su replace () per farlo, ad esempio

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

Sostituirà tutte le occorrenze di stringhe in List toBeReplaces con newString nell’elenco principale mainString fornito.
Vediamo come sostituire le occorrenze di con “AA” ie
Il contenuto di otherStr è il seguente,

HeAAAAo, ThiAA iAA AA AAAAmpAAe AAtring

L’esempio completo è il seguente,
Output:

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

Write a Comment

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *