Python: Comment remplacer un ou plusieurs caractères dans une chaîne?

Dans cet article, nous allons expliquer comment remplacer un ou plusieurs caractères dans une chaîne en Python.

Python fournit une fonction str.replace () c’est-à-dire

str.replace(old, new , count)

Il renvoie un nouvel objet chaîne qui est une copie de la chaîne existante avec teneur. De plus,

  • Si count n’est pas fourni, il renverra une chaîne avec toutes les occurrences de ‘old’, remplacée par ‘new’ string.
  • Si le paramètre count est passé, il sera renvoie une chaîne avec les premières occurrences ‘count’ de ‘old’ string remplacées par ‘new’ string.

Comprenons par exemples,

Remplace toutes les occurrences du caractère donné / string dans une chaîne

Supposons que nous ayons une chaîne ie

mainStr = "Hello, This is a sample string"

Maintenant, remplaçons toutes les occurrences de ‘s ‘with’ X ‘ie

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

Le contenu de otherStr est le suivant,

Hello, ThiX iX a Xample Xtring

As les chaînes sont immuables en Python, nous ne pouvons donc pas modifier son contenu. Par conséquent, les fonctions membres comme replace () retournent une nouvelle chaîne.
Comme nous n’avons pas fourni le paramètre count dans la fonction replace (). Ainsi, il remplacera toutes les occurrences de «s» par «X». Mais que se passe-t-il si nous voulons remplacer uniquement les premières occurrences au lieu de toutes? Voyons comment faire cela,

Remplacez les n premières occurrences du caractère / sous-chaîne donné dans une chaîne

Supposons que nous ayons une chaîne, c’est-à-dire

mainStr = "Hello, This is a sample string"

Maintenant, remplaçons les 2 premières occurrences de ‘s’ par ‘XXXS’ ie

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

Le contenu de otherStr est le suivant,

Hello, ThiXXXS iXXXS a sample string

Comme nous avons passé le paramètre count à 2, seules les 2 premières occurrences de ‘s’ seront remplacées dans la copie retournée.

Remplacer plusieurs caractères / strings dans une chaîne

La fonction str.replace () peut remplacer les occurrences d’une seule sous-chaîne donnée. Mais que se passe-t-il si nous voulons remplacer plusieurs sous-chaînes dans une chaîne donnée?

Supposons que nous ayons une chaîne, c’est-à-dire

mainStr = "Hello, This is a sample string"

Maintenant, comment remplacer toutes les occurrences de ces trois caractères ‘s’, ‘l’, ‘a’ par cette chaîne ‘AA’?
Créons une nouvelle fonction sur replace () pour faire ça ie

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

Il remplacera toutes les occurrences de chaînes dans List toBeReplaces par newString dans la liste principale donnée mainString.
Voyons comment remplacer les occurrences de par « AA » ie
Le contenu de otherStr est le suivant,

HeAAAAo, ThiAA iAA AA AAAAmpAAe AAtring

L’exemple complet est le suivant,
Sortie:

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

Write a Comment

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *