Regular Expression
Une expression régulière est un langage formel pour décrire des motifs de chaînes, définissant des règles de correspondance avec des métacaractères et des quantificateurs ; largement utilisée pour la recherche, la validation et l’extraction.
Objectif
Fournir un langage de correspondance de motifs de chaînes compact et puissant, en remplacement d’une logique d’analyse écrite à la main.
Mécanisme
Composée de caractères littéraux et de métacaractères (. * + ? [] () {} \ | ^ $). Les quantificateurs contrôlent la répétition (* zéro ou plus, + un ou plus, ? zéro ou un, {n,m} une plage spécifiée). Le groupement () capture, | alterne, [] est une classe de caractères et \d \w \s sont des classes prédéfinies. Les moteurs font correspondre via backtracking NFA/DFA ou automates.
Cas d’usage
- Validation de saisies de formulaires (e-mails, numéros de téléphone)
- Extraction de motifs dans les logs
- Rechercher et remplacer (IDE, sed)
- Génération d’analyseurs lexicaux
Exemples
- entrée
/\d{3}-\d{4}/OutputMatches 123-45673 digits-4 digits
Erreurs courantes
- The greedy quantifier .* matches too much
- Use the non-greedy .*? or a precise character class