Cinq erreurs courantes chez les débutants en expressions régulières et comment les résoudre.
Premièrement, l'erreur consistant à ne pas échapper le point (.). Dans une expression régulière, le point signifie "n'importe quel caractère" ; pour trouver un vrai point, il faut donc écrire \. . Par exemple, si vous cherchez l'extension de fichier .txt sans écrire \.txt, des chaînes comme xtxt seront aussi capturées.
Deuxièmement, l'erreur de capturer trop avec une correspondance gourmande. <.*> avale tout du premier < jusqu'au dernier >. Pour capturer les balises une à une, on utilise la version paresseuse <.*?> ou la classe de caractères négative <[^>]*>.
Troisièmement, l'erreur d'oublier les ancres. Pour vérifier que la chaîne entière respecte un format, il faut fixer les deux extrémités avec ^ et $. Sans ancres, la validation réussit même si seule une partie de la chaîne correspond, ce qui laisse passer les vérifications de mot de passe ou d'identifiant.
Quatrièmement, on échappe excessivement les caractères spéciaux à l'intérieur des crochets. Dans une classe de caractères [], la plupart des métacaractères sont traités comme de simples caractères, donc [.+*] désigne les trois symboles eux-mêmes. Il faut toutefois faire attention à la position de ] ^ - \ .
Cinquièmement, l'erreur d'oublier les drapeaux. Pour trouver toutes les correspondances il faut g, pour ignorer la casse i, et pour appliquer ^·$ à chaque ligne d'un texte multiligne m. Si vous n'obtenez qu'un seul résultat, vérifiez d'abord le drapeau g.