- Thème : Regular Expression (RegEx)
- Objectif : découvrir et apprendre à utiliser les
Expressions Régulières
- Sources principales : Sololearn, Expreg.com, Regular-Expressions.info
- Infos complémentaires : Expression régulière, Hiérarchie de Chomsky, Langage naturel, Langage formel
- Doc Python 3 : module 're'
Comme l'empereur romain Marcus Aurelius disait :
Dura RegEx Sed RegEx
Traduction :
Les RegEx sont dures, mais ce sont des RegEx
Ce qui signifie :
Les expressions régulières sont dures à aborder, mais ce sont des expressions régulières (et PAF dans ta face !)
Si vous n'avez rien compris à cette signification, c'est normal, c'était le but (de ma blague pourrie)! Par contre, plus sérieusement, vous serez normalement amené à rencontrer et utiliser des RegEx (peu importe le langage de programmation) et il est, selon moi, utile de savoir comment et quand bien les utiliser.
Une Expression Régulière
est une séquence de caractères qui décrit, selon une syntaxe précise, un ensemble de chaînes de caractères possibles. En gros, c'est un filtre qui peut être utilisé pour rechercher/valider/modifier des chaînes de caractères.
- Remplacer par des 'X' tous les numéros de téléphone d'une liste clients pour en garder la confidentialité lors d'une publication 0123/456 78 90 > 01XX/XXX XX XX
- Vérifier le contenu de certains champs de formulaire avant envoi (email, numéro de téléphone, adresse IP...)
Il est temps de se lancer et découvrir les différents éléments qui constituent la syntaxe des Expressions Régulières
. Afin de pouvoir s'exercer de manière interactive et le plus simplement possible, j'ai décidé de vous faire coder en Python utiliser le Code Playground de Sololearn
Les Expressions Régulières
en Python sont disponibles via le module re qui fait parti de la bibliothèque standard.
Après avoir défini une Expression Régulière
, il suffit d'utiliser la fonction re.match
Cette fonction retournera un object qui correspond au modèle de l'expression sinon elle retournera None
EXEMPLE : valeur littérale (=exacte)
import re
pattern = r"spam"
if re.match(pattern, "spamspamspam"):
print("Match")
else:
print("No Match")
SOLOLEARN : Code Playground