Python:
Suppression de caractères correspondant à un motif
Comment faire :
import re
# Chaîne d'exemple
texte = "Bonjour, Monde ! 1234"
# Supprimer tous les chiffres
sans_chiffres = re.sub(r'\d', '', texte)
print(sans_chiffres) # Sortie : "Bonjour, Monde ! "
# Supprimer la ponctuation
sans_ponctuation = re.sub(r'[^\w\s]', '', texte)
print(sans_ponctuation) # Sortie : "Bonjour Monde 1234"
# Supprimer les voyelles
sans_voyelles = re.sub(r'[aeiouAEIOU]', '', texte)
print(sans_voyelles) # Sortie : "Bnjr, Mnd! 1234"
Ma fonction personnalisée
Je fais cela assez souvent pour avoir refactorisé cela dans cette simple fonction delete()
. C’est aussi une bonne démonstration des doctests :
def delete(chaine: str, regex: str) -> str:
"""
>>> delete("Bonjour, le monde !", "l")
'Bonjour, e monde !'
>>> delete("Bonjour, le monde !", "[a-z]")
'B, !'
"""
return re.sub(regex, "", chaine)
Plongée profonde
La pratique de supprimer des caractères correspondant à un modèle dans le texte a des racines profondes en informatique, remontant aux outils Unix initiaux comme sed
et grep
. En Python, le module re
offre cette capacité, tirant parti des expressions régulières, un outil puissant et polyvalent pour le traitement du texte.
Les alternatives au module re
comprennent :
- Les méthodes de chaîne comme
replace()
pour les cas simples. - Les bibliothèques tierces comme
regex
pour des motifs plus complexes et une meilleure prise en charge Unicode.
Sous le capot, lorsque vous utilisez re.sub()
, l’interprète Python compile le motif en une série de codes d’opération, traités par une machine à états qui effectue une correspondance de motifs directement sur le texte d’entrée. Cette opération peut être gourmande en ressources pour de grandes chaînes ou des motifs complexes, donc les considérations de performance sont cruciales pour le traitement des grandes données.
Voir aussi
- Documentation du module
re
Python : Documents officiels pour les expressions régulières en Python. - Regular-Expressions.info : Un guide complet sur les expressions régulières.
- Tutoriel Real Python sur regex : Applications réelles des expressions régulières en Python.