Une araignée au plafond

Les aventures d'un apprenti webmaster



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. [...]

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.



Réagissez à cet article !

Aucune réaction, soyez le premier à réagir ! pour l'article Expressions rationnelles.

Par la soumission de votre réaction, vous déclarez accepter les conditions générales d'utilisation du site.

You must be logged in to post a
video comment.

Articles similaires

Poursuivez votre lecture par des articles traitant de sujets similaires :

Abonnement

Partenaires en visibilité à la thématique similaire à visiter : geekeo

© 2008-2012 Une araignée au plafond • Tous droits réservés • Mentions légales • Pages utiles : lexique web