US

Quelques exemples

Cette dernière section vous propose quelques exemples d'expressions rationnelles qui vous permettrons de vérifier des chaines de caractères courantes comme des adresses email, des URL, des numéros de carte de crédit, ...

Il existe des sites web qui proposent des bibliothèques d'expressions rationnelles. Cela permet de ne pas perdre du temps à construire une expression rationnelle si celle-ci existe déjà. Je vous invite par exemple à visiter le site RegexLib qui comporte plus de 2000 expressions rationnelles.

Adresse email

Voici une expression rationnelle qui permet de vérifier si une chaine est une adresse email valide.

^([\w\-\.]+)@((?:[\w\-]+\.)+)([a-z]{2,4})$

Décomposons le motif pour mieux comprendre ses différentes parties :

  1. ^ : début de chaine ;
  2. ([\w\-\.]+) : nom d'utilisateur composé d'un ou plusieurs caractères de mot, tiret et point ;
  3. @ : une arobase ;
  4. (([\w\-]+\.)+) : domaine composé de une ou plusieurs fois le groupe ([\w\-]+\.), c'est-à-dire un ou plusieurs caractères de mot et tiret suivi d'un point ;
  5. ([a-z]{2,4}) : extension composée de 2 à 4 lettres minuscules ;
  6. $ : fin de chaine.

Par exemple, l'adresse email john.doe_445@the.big-house.gov correspond à cette expression rationnelle. Les trois groupes trouvés sont john.doe_445, the.big-house. et gov.

Nombre décimal

L'expression rationnelle suivante permet de vérifier si une chaine de caractères correspond à un nombre entier ou décimal positif ou négatif.

^[-+]?\d+(?:\.\d+)?$

Encore une fois, décomposons le motif :

  1. ^ : début de chaine ;
  2. [+-]? : le nombre peut-être précédé optionnellement du signe + ou - ;
  3. \d+ : un ou plusieurs chiffres ;
  4. (?:,\d+)? : groupe optionnel qui représente la partie décimale : une virgule suivie de un ou plusieurs chiffres ;
  5. $ : fin de chaine.

Voici quelques chaines qui correspondent à ce motif : -120,45, +9 et 11,0.

Mois

L'expression rationnelle suivante permet de vérifier si une chaine de caractères correspond bien à un numéro de mois valide. Les neuf premier mois doivent commencer par zéro.

^(?:0[1-9])|(?:1[0-2])$

Le motif se compose de deux alternatives :

  • On a soit 0[1-9] : un 0 suivi d'un chiffre entre 1 et 9 ;
  • Ou alors 1[0-2] : un 1 suivi d'un 0, un 1 ou un 2.

On peut faire pareil pour le jour et l'année et arriver à construire une expression rationnelle pour vérifier une date de la forme JJ/MM/AAAA par exemple. Je vous laisse construire cette expression rationnelle en tant qu'exercice.

  • Espace membre
  • Learning Center
  • Les forums
  • Livre d'or
  • Imprimer
  • Boutique
  • Info
  • Règlement
  • Erreur
  • Newsletter