Méthode Regex Replace en Python
Dans ce tutoriel, nous examinerons l’utilisation et le fonctionnement de la méthode re.sub()
et examinerons les exemples de codes. Le module re
de Python fournit les différentes fonctionnalités utilisant l’expression régulière pour les chaînes Unicode et 8 bits. Les fonctionnalités incluent le remplacement de chaîne, le fractionnement et la correspondance, etc.
Regex Replace en utilisant la méthode re.sub()
en Python
La méthode re.sub(pattern, repl, string, count=0)
prend la string
comme entrée et remplace les occurrences les plus à gauche du pattern
par le repl
. Si aucun pattern
n’est trouvé dans l’argument string
, la string
est renvoyée sans aucune modification.
L’argument pattern
doit être sous la forme d’une expression régulière. Le repl
peut être une chaîne ou une fonction. Si l’argument repl
est une chaîne, alors le pattern
dans la string
est remplacé par la chaîne repl
. Si une fonction est passée comme argument repl
, alors la fonction sera appelée chaque fois qu’une occurrence du pattern
est trouvée. La fonction prend le matchObject
comme entrée et renvoie la chaîne de remplacement. Le matchObject
aura sa valeur égale à True
si la correspondance est trouvée et aura sa valeur égale à None
sinon.
L’argument optionnel count
représente le nombre maximum d’occurrences du pattern
que nous voulons remplacer dans la string
.
L’exemple de code ci-dessous montre comment utiliser la méthode re.sub()
pour remplacer un modèle de la chaîne en utilisant l’expression régulière:
import re
string = "Hello! How are you?! Where have you been?!"
new_string = re.sub(r"""[!?'".<>(){}@%&*/[/]""", " ", string)
print(new_string)
Production:
Hello How are you Where have you been
L’exemple de code ci-dessus supprime les caractères spécifiés dans l’argument pattern
avec l’espace vide, qui est notre argument repl
dans le code ci-dessus.
Nous pouvons également utiliser la fonction comme argument repl
pour effectuer la même tâche en retournant " "
chaque fois qu’une occurrence de l’argument repl
est trouvée, comme indiqué dans l’exemple de code ci-dessous:
import re
def repl_func(match):
if match == True:
return " "
string = "Hello! How are you?! Where have you been?!"
new_string = re.sub(r"""[!?'".<>(){}@%&*/[/]""", repl_func, string)
print(new_string)
Production:
Hello How are you Where have you been