Expression régulière (ou expression rationnelle)
Définition
Les expressions régulières sont des chaînes de caractères qui permettent, par l’utilisation de caractères spéciaux, de désigner un ensemble de chaînes de caractères. Elles sont utilisées dans de nombreux systèmes informatiques, en particulier dans le domaine du web.
Les variables et opérateurs
Les expressions régulières utilisent les caractères spéciaux suivants (tableau largement inspiré de cette page) :
Quantifieurs et opérateurs
. | Correspond à un caractère quelconque : lettre, nombre ou symbole. | diction.aire correspond à dictionnaire, dictionaaire, mais pas à dictionaire. |
* | Correspond à un vide ou à plusieurs caractères identiques à celui précédant le * (par défaut). | dico* correspond à dicooooo, dic et dico mais pas à dicodu. On peut utiliser les () pour changer l’expression par défaut. di(co)* correspond à dico, di, dicoco, mais pas à dino. |
+ | Identique à *, mais avec au moins un caractère identique à celui précédent le + (par défaut). | dico+ correspond à dicoooo, dico, mais pas à dic ou dicodu. |
? | Correspond à zéro ou une fois le caractère précédent le ? | di?co correspond à dco et dico |
| | Correspond à un opérateur OR (ou) | k|t correspond à k ou t |
Bornes
^ | Borne de début de la chaîne | ^fr correspond à fr-fr mais pas à ffr (1) |
$ | Borne de fin de chaîne | fr$ correspond à fr-fr mais pas à fr-ch |
Regroupements
() | Les parenthèse sont utilisées pour créer une chaine et l’utiliser à la place du caractère par défaut. | di(co)+ correspond à dico, et dicoco |
[] | Créer une liste de caractères. | [xyz] créé une liste avec les caractères x, y et z à l’intérieur. |
– | Le tiret permet de créer une liste de X vers Y, au sens logique | [a-z] créé une liste des caractères de a à z, tout comme [1-10] créé une liste de chiffres de 1 à 10. |
Autre
Permet d’utiliser un caractère spécial mentionné ci-dessus en tant que caractère et non en tant que symbole spécial devant être interprété pour créer l’expression régulière. | 1min30.com correspondrait à 1min30kcom. En utilisant 1min30.com, on limite la correspondance aux chaines contenant uniquement 1min30.com. |
(1) à noter : les expressions régulières sont inclusives par défaut. Ainsi, fr va rechercher toutes les chaines de caractères contenant fr.
Applications au web
Les expressions régulières dans Google Analytics
Il existe de nombreux cas d’usage nécessitant d’utiliser des expressions régulières en webanalytics :
- Pour effectuer un regroupement de contenus : on va par exemple marquer les pages contenant /category/ dans leur url comme étant des pages de catégories de produits.
- Pour filtrer le trafic : l’expression régulière ^fr inclura par exemple tous les visiteurs parlant français, incluant les suisses (fr-ch), les canadiens (fr-ca), les belges (fr-be) et les luxembourgeois (fr-lu). Pour ne pas inclure les variantes régionales, on utilisera ^fr$
Les expressions régulières dans les redirections
En terme de développement web, les règles de redirection apache et .htaccess sont réalisées à l’aide d’expressions régulières.
Souvenirs, souvenirs : del *.*
Les plus vieux d’entre nous se souviennent peut-être avec émotion de leurs premiers ébats avec l’un des premiers systèmes d’exploitation grand public installé sur les PC : Microsoft MS-DOS. Sans le savoir, l’utilisateur utilisait alors très fréquemment une forme d’expression régulière : le caractère * (étoile).La commande :
del *.*
permettait ainsi de supprimer l’ensemble des fichiers du répertoire courant. Pas de chance : le * est en réalité interprété de manière différente dans les « vraies » expressions régulières, ce qui est une source de confusion. Reste le principe : un caractère spécial (*) permet de désigner un ensemble de lettres et de chiffres.
Pour aller plus loin, nous vous invitons à découvrir notre agence developpement web et à télécharger notre livre blanc « Les 11 commandements d’un site internet qui convertit vos visiteurs en clients »