Expressions régulières
Les expressions régulières depuis les bases en PHP et JavaScript : caractères, classes et quantificateurs, groupes et références arrière, fonctions preg_* en PHP, objet RegExp en JavaScript, Unicode et lettres accentuées, et pour finir la pratique et les pièges dans lesquels on tombe facilement.
Une expression régulière est un court motif qui décrit le texte recherché – par exemple « un ou deux chiffres, deux-points et deux chiffres ». Comment écrire un tel motif, de quelles parties il se compose et comment l’utiliser en PHP et en JavaScript.
Les parenthèses d’un motif regroupent ses parties et retiennent en même temps ce qu’elles ont trouvé. Comment extraire d’une date le jour, le mois et l’année, nommer les groupes, réorganiser le texte lors d’un remplacement et trouver des mots répétés.
PHP travaille avec les expressions régulières au moyen des fonctions preg_*, basées sur la bibliothèque PCRE. Comment écrire un motif avec délimiteurs et modificateurs, à quoi sert chaque fonction, comment insérer sans risque un texte de l’utilisateur dans un motif et comment reconnaître une erreur.
En JavaScript, une expression régulière est un objet RegExp avec lequel travaillent les méthodes des chaînes de caractères comme match, replace ou split. Comment écrire un motif, ce que font les différents drapeaux, quelle méthode convient à quel usage et pourquoi test() avec le même motif réussit une fois et échoue la suivante.
Tant qu’un texte ne contient que des lettres sans accents, les expressions régulières fonctionnent sans surprise. Avec « é », « ç » ou « œ », elles comptent pourtant, sans le bon modificateur, des octets au lieu de lettres, et ni \w ni \b ne les reconnaissent. Comment résoudre cela en PHP et en JavaScript.
Des techniques utiles au quotidien et des pièges dans lesquels on tombe facilement : pourquoi .* prend plus qu’il ne faut, comment vérifier le texte avant et après une correspondance, comment valider une date et pourquoi un motif d’apparence innocente peut bloquer un serveur.