Expressions régulières pour les débutants : la correspondance de modèles simplifiée

Les expressions régulières (regex) sont des langages de correspondance de modèles pris en charge dans tous les principaux langages de programmation. La maîtrise de 15 à 20 concepts de base vous permet d'écrire des expressions régulières pour la validation des e-mails, l'extraction d'URL, le formatage des numéros de téléphone et le nettoyage des données.

Regular expression pattern diagram with labeled components and match highlighting

Que sont les expressions régulières ?

Une expression régulière (regex ou regexp) est une séquence de caractères qui définit un modèle de recherche. Ils sont intégrés dans pratiquement tous les langages de programmation et sont utilisés pour :

  • Validation : Cette chaîne correspond-elle au modèle d'une adresse e-mail valide ?
  • Recherche : Recherchez tous les numéros de téléphone dans cette liste de 10 000 mots. document.
  • Remplacement : Remplacer toutes les occurrences de "colour" par "color".
  • Extraction : Extraire toutes les URL d'un bloc de HTML.
  • Fractionnement : Fractionne une chaîne par des virgules, mais pas par des virgules entre guillemets.

Métacaractères principaux et ce à quoi ils correspondent

Regular expression metacharacters and quantifiers quick reference cheatsheet

PersonnageCorrespondancesExemple
.Tout caractère unique sauf nouvelle lignec.t correspond à "cat", "cot", "couper"
dN'importe quel chiffre (0–9)ddd correspondances "123"
wCaractère de mot (A-Z, a-z, 0-9, _)w+ correspondances "hello_world"
sEspace (espace, onglet, nouvelle ligne)s+ correspond à n'importe quel espaces
D Non numériqueD+ correspond à "bonjour"
WNon-mot le caractèreW correspond à "!" ou ","
SNon-espace

Échappement : Pour faire correspondre un métacaractère littéral, échappez-vous avec \. Pour faire correspondre un littéral ., utilisez \.


Quantificateurs : modèles répétitifs

Regex flags comparison showing global g, case-insensitive i, and multiline m flags

QuantificateurSignificationExemple
*0 ou plus (gourmand)ab*c correspond à "ac", "abc", "abbc"
+1 ou plus (gourmand)ab+c correspond à "abc", "abbc" mais pas "ac"
?0 ou 1 (facultatif)colou?r correspond à "color" et "couleur"
{n}Exactement n foisd{4} correspond exactement à 4 chiffres
{n,m}Entre n et m foisd{3,5} correspond à 3, 4 ou 5 chiffres
*?0 ou plus (paresseux)Correspond à aussi peu que possible
+?1 ou plus (paresseux)Correspond à aussi peu que possible

Classes de personnages et ancres

Regex capture group extraction breakdown showing isolated substring matching

Classes de personnages [...] : Correspond à n'importe quel personnage d'un ensemble.

  • [aeiou] — correspond à n'importe quelle voyelle
  • [A-Z] — n'importe quelle majuscule lettre
  • [0-9] — n'importe quel chiffre (identique à d)
  • [^aeiou] — tout caractère qui est PAS une voyelle (négation)

Ancres : Faites correspondre les positions, pas les caractères.

  • ^ — correspond au début de la chaîne
  • $ — correspond à la fin de chaîne
  • — correspond à la limite du mot

Regex pratique : modèles d'e-mail, de téléphone et d'URL

ToolDolfen in-browser regular expression tester and debugger pipeline

Five essential production regex patterns for email, date, URL, and phone numbers

Validation de base des e-mails :

^[a-zA-Z0-9._%+\-]+@[a-zA-Z0-9.\-]+\.[a-zA-Z]{2,}$

Numéro de téléphone aux États-Unis (plusieurs formats) :

^(\+1)?[\s.-]?\(?\d{3}\)?[\s.-]?\d{3}[\s.-]?\d{4}$

Extraction d'URL à partir d'un texte :

https?:\/\/[\w\-]+(\.[\w\-]+)+[/#?]?[\w\-._~:/?#[\]@!$&'()*+,;=%]*

Testez et déboguez tous ces modèles en temps réel à l'aide du Testeur d’Expressions Régulières (Regex Tester) gratuit côté client avec mise en évidence instantanée des correspondances.

Guides complémentaires recommandés

Explorez les didacticiels et utilitaires complémentaires de ce groupe de sujets pour améliorer votre flux de travail numérique :

Comprendre les données EXIF : ce que vos photos révèlent sur l'appareil photo, l'heure et l'emplacementTutoriel pratique étape par étape avec des normes vérifiées et des flux de travail dans le navigateur.L'ultime Guide de confidentialité des photos : supprimez les métadonnées GPS et EXIF avant le partageTutoriel pratique étape par étape avec des normes vérifiées et des flux de travail dans le navigateur.Comment filigraner des photos pour la protection des droits d'auteur : texte et logo SuperpositionsTutoriel pratique étape par étape avec des normes vérifiées et des flux de travail intégrés au navigateur.Comment compresser des images en ligne sans perte de qualitéFlux de travail multiformat complémentaire pour la connexion liée outils de données et multimédias.
Utilitaire recommandé : Regex TesterExécutez ce flux de travail en direct dans votre navigateur sans aucun téléchargement sur le serveur et avec une confidentialité à 100 % côté client.
Testeur d’Expressions Régulières (Regex Tester)
Testeur d’Expressions Régulières (Regex Tester)

Foire Aux Questions

Trouvez des réponses rapides et vérifiées aux questions fréquentes sur ce flux de travail.

Les expressions régulières sont-elles les mêmes dans tous les langages de programmation ?

La syntaxe de base est largement standardisée (basée sur les expressions régulières compatibles Perl, PCRE), mais les implémentations diffèrent dans les cas extrêmes. JavaScript, Python, Ruby et PHP sont très similaires. JavaScript ne prend pas en charge le lookbehind dans les moteurs plus anciens ; Python utilise (?P<name>...) pour les groupes nommés ; les drapeaux disponibles diffèrent selon les langues.

Les regex sont-elles sensibles à la casse par défaut ?

Oui, les expressions régulières sont sensibles à la casse par défaut. Pour activer la correspondance insensible à la casse, utilisez l'indicateur i : /pattern/i en JavaScript, re.IGNORECASE en Python ou REGEXP_REPLACE avec un classement insensible à la casse en SQL.

Quelle est la différence entre les quantificateurs gourmands et paresseux ?

Les quantificateurs gourmands (* + ?) correspondent autant que possible tout en permettant au modèle global de correspondre. Les quantificateurs paresseux (*? +? ??) correspondent le moins possible. Exemple : avec le texte '<b>gras</b>', <.*> correspond à la chaîne entière (gourmand), tandis que <.*?> correspond uniquement à '<b>' (paresseux).

Bilal Ahmad