Expressions rationnelles

Les expressions rationnelles, parfois appelées expressions régulières (ou encore regex ou regexp de l’anglais regular expressions) est un langage informatique développé dans les années 1940 et 50 destiné à manipuler les chaînes de caractères. Très compactes et très puissantes, elles permettent de décrire des chaînes de caractères très complexes en une quantité réduite de caractères.

Exemples d’utilisation

La définition des expressions rationnelles n’est pas intuitive et leur usage est essentiellement cantonné aux outils destinés aux informaticiens, qu’il s’agisse d’éditeurs de textes ou d’outils de manipulation de chaînes de caractères en ligne de commande fréquemment utilisés sous UNIX. En matière de développement web, l’usage des expressions rationnelles permet notamment de vérifier la validité des données entrées par les utilisateurs, ou encore de filtrer le spam.

L’identification des adresses email correctement formulés, peut être réalisé sous cette forme compacte relativement permissive, mais aussi assez lisible :

^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.(?:[A-Z]{2}|com|org|net|gov|biz|info|name|aero|biz|info|jobs|museum)$

ou bien encore sous cette forme plus exhaustive et plus stricte, mais aussi très peu lisible :

(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\]) 

Cette autre expression rationnelle permet d’identifier plusieurs centaines de milliers de façons d’écrire le mot « Viagra » :

\b((V|v|\\/)+([\W]*[\w]{0,2}[\W]*)(I|i|1|l|\||ï|ì|:|Ì|Î|Í|Ï|y|Y)*([\W]*[\w]{0,2}[\W]*){0,2}(A|a|@|/\\|á|à|â|ã|ä|å|æ|À|Á|Â|Ã|Ä|Å)+([\W]*[\w]{0,3}[\W]*)(G|g|6|9){1,4}([\W]*[\w]{0,3}[\W]*)(R|r|®){0,4}([\W]*[\w]{0,2}[\W]*)(A|a|@|/\\|á|à|â|ã|ä|å|æ|À|Á|Â|Ã|Ä|Å)+)\b

Documentation

Une excellente source de documentation est le site Regular-Expressions.info. Très didactique et orienté vers la pratique, ce site propose divers exemples d’expressions rationnelles communément utilisées dans les applications web, notamment.

Une autre source utile d’informations en matière d’expressions rationnelles est le site RegExLib.com qui regorge d’exemples d’expressions rationnelles classés, commentés et notés par les utilisateurs du service, en plus d’un testeur en ligne permettant de tester des expressions rationnelles avec les moteurs .Net (côté serveur), JavaScript (côté client) et VBScript (côté client).

Un excellent outil en ligne pour tester les expressions rationnelles est le site REGex TESTER permettant de tester ses expressions rationnelles en JavaScript (côté client en cours de frappe), Preg (côté serveur) et Ereg (côté serveur).

Conclusion

Les expressions rationnelles ont beau être fort puissantes, elles n’en demeurent pas moins peu intuitives pour le commun des mortels. Néanmoins, pour les informaticiens trouvant le temps d’apprendre à les maîtriser, leur utilisation permet un gain de temps non négligeable dans le développement d’applications manipulant les chaînes de caractères en général et les applications web en particulier.

Speak Your Mind

*

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.