REGEX … ? Focus sur les expressions rationnelles
Issues des théories mathématiques pour décrire des langages formels, les REGEX (de l'anglais regular expression) ou expressions rationnelles, permettent aujourd’hui de construire les plus puissants algorithmes de filtrage à partir d’une seule expression.
Petite présentation des REGEX et de leurs utilités.
Vous avez sûrement déjà croisé ce genre de lignes de codes !? Un peu barbares de prime abord, elles se révèlent d’une efficacité redoutable et surtout d’une utilité indispensable.
Ne vous êtes vous jamais demandé comment une page web (ou plus précisément le serveur) peut savoir que l’on a bien rentré ou non une adresse mail ou une date de naissance dans le champ correspondant lors de l’envoi d’un formulaire d’inscription par exemple.
Et bien comme vous vous en doutez surement, c’est bien là qu’interviennent les REGEX. Elles permettent de filtrer ce que l’on souhaite à l’intérieur d’une chaîne de caractères.
Et ce n’est là qu’un exemple d’applications parmi tant d’autres, comme le fait d’extraire des parties bien précises d’une chaîne de caractère ou de rendre les mails et toute autre url automatiquement cliquable lors de l’ajout de commentaires par vos visiteurs. Vous pouvez également modifier un texte complet de cette manière.
Là encore, la liste est non exhaustive et les champs d’application quasi infinis.
De plus, les regex peuvent s’utiliser aussi bien en PHP qu’en Javascript et également en Python.
Sans rentrer dans les détails, puisque il faudrait y consacrer un dossier entier, je vais vous montrer comment fonctionnent ces expressions.
Une expression peut être décomposée en deux parties
- La première, qui est tout simplement le motif, est toujours ‘entourée’ par un même symbole. On utilise Généralement la barre oblique « / ». Cela permet de savoir où commence et se termine ce motif. C’est ici que l’on rentre tous les symboles qui permettront de filtrer notre recherche.
- La seconde partie concerne les options (ou flags en anglais). Rajouter un « i » permet par exemple de signifier que le filtre est insensible à la casse.
C’est bien beau tout ça me direz vous mais comment fait on pour lui dire dans quelle chaîne de caractères chercher !
C’est très simple il vous suffit d’écrire directement la chaîne de caractères à la suite des motifs, séparés par une virgule, ou comme dans l’exemple du dessous de mettre la variable contenant cette chaîne de caractères.
Pour les plus curieux d’entre vous, je vous conseille le très simple mais néanmoins très efficace site RegExr qui vous permettra de vous entraîner ou tout simplement tester la puissance de ces expressions très rapidement sans avoir besoin de créer vos propres fichiers.
En espérant avoir fait lumière sur le potentiel que représentent les expressions rationnelles n’hésitez pas à commenter cet article afin de l’améliorer du mieux que possible.
La science n’étant pas infuse, voici mes sources : expreg.com, open Classroom, le livre Développer un site web en PHP, MySQL de Robin Nixon.