Accueil  / Semaine 4 / Présentation de la semaine

Présentation de la semaine

Les expressions régulières

Les expressions régulières constituent un élément essentiel de l’arsenal du bon informaticien pour traiter les données textuelles non structurées. On les utilise dans l’administration des réseaux et des logiciels complexes pour traiter les fichiers journaux et y trouver de l’information de façon systématique. Ainsi, avec les expressions régulières, on peut trouver très facilement toutes les adresses électroniques contenues dans une page web : c’est sans doute un outil important pour les producteurs de pourriels. On utilise aussi les expressions régulières dans les bases de données comme MySQL (pour faire des recherches textuelles) ou en XML, notamment avec la norme XSLT 2.0.

Le rôle des expressions régulières en informatique

Voici ce qu’Owen Kaser, professeur à l’Université du Nouveau-Brunswick, nous dit sur les expressions régulières :

Je pense que les expressions régulières sont un thème récurrent en informatique, particulièrement pour ce qui est des sujets sous la loupe des chercheurs des laboratoires AT&T [1]. Il s’agit d’un point d’intersection entre la théorie et la pratique, ce qui constitue une partie de l’« héritage utile » de l’informatique [2].

Ceux qui ne sont pas familiers avec les expressions régulières auront beaucoup de mal à lire le code construit avec des outils comme « lex » [3]. Plusieurs programmes écrits en langage Perl [4] leur seront incompréhensibles, de même que plusieurs scripts Unix [5]. Les éditeurs de textes classiques comme « vi » et « emacs » me sont beaucoup plus utiles parce qu’ils utilisent les expressions régulières.

Étant donné que travailler avec les regex tend à être compliqué, je pense que ce serait être très exigeant que de s’attendre à ce que quelqu’un puisse en saisir le principe lorsqu’il rencontre les expressions régulières pour la première fois.

Owen Kaser

Owen Kaser, professeur à l’Université du Nouveau-Brunswick

Chose certaine, les expressions régulières demeurent un sujet de recherche d’actualité en informatique [6].

Expression régulière ou expression rationnelle ?

Pour parler des « expressions régulières », on utilise aussi le terme expression rationnelle . Dans le cadre de ce cours, nous préférons employer expression régulière où l’adjectif régulier prend le sens de « conforme aux règles ».

Déroulement de la semaine

Cette semaine, nous allons nous initier à l’aspect pratique des expressions régulières. Plus particulièrement, la semaine se terminera par un laboratoire sur l’outil grep qui permet de faire des recherches complexes dans les textes. La semaine prochaine, nous couvrirons davantage la théorie sur laquelle s’appuient les expressions régulières et nous serons ainsi amenés à mieux comprendre leur fonctionnement.

Laboratoire ECMAScript

La dernière activité de la semaine est un laboratoire en ligne, écrit en ECMAScript, qui vous permettra de tester certaines expressions régulières dans votre navigateur. Dans la mesure où votre navigateur le permettra, vous pourrez explorer les expressions régulières de façon interactive. Vous pouvez faire ce laboratoire quand vous le souhaitez et y revenir aussi souvent que vous le désirez pour tester votre compréhension de la notion d’expression régulière.

Référence

- Jeffrey E.F. Friedl, Laurent Dami (trad.), Maîtrise des expressions régulières, 2e éd., Paris [et al.], O’Reilly, 2003, 486 p., ISBN : 2841772365.

Étant donné un texte, ou plusieurs textes, on y peut faire des recherches très sophistiquées en utilisant les expressions régulières. On peut, par exemple, chercher dans un texte tous les mots qui se terminent par un « s ». On peut chercher et éliminer tout texte entre parenthèses. Et ainsi de suite. Les expressions régulières posent leur fondation sur l’informatique théorique. On les utilise partout dans la gestion de l’information, dans la gestion des réseaux informatiques où on doit traiter les fichiers journaux, jusqu’au traitement automatisé des courriels. Cependant, comme nous le verrons, les expressions régulières sont surtout réservées aux gens qui ont une solide maîtrise de l’informatique. De plus, même si elles sont très efficaces, les expressions régulières ne peuvent traiter des gigaoctets de données en ligne.

[1Shannon, le père de la théorie de l’information, était chercheur dans les laboratoires AT&T.

[2Owen Kaser fait ici référence au fait qu’une grande partie des technologies informatiques furent développées dans l’industrie sans nécessairement tenir compte des travaux de type universitaire.

[3Lex est un outil permettant de créer et de traiter ses propres langages informatiques.

[4Perl est un langage de script très répandu et qui « excelle » au traitement du texte, en partie à cause de l’intégration des expressions régulières au langage.

[5Exception faite de Windows, on dit parfois que tous les systèmes d’exploitation modernes, comme MacOS et Linux, sont des systèmes de type « Unix ».

[6Ellul, K. and Krawetz, B. and Shallit, J. and Wang, M.,
Regular expressions : new results and open problems,
Journal of Automata, Languages and Combinatorics,
vol. 9, No. 2-3, 2004.