Accueil  / Semaine 5 / Travail noté sur les expressions régulières

Travail noté sur les expressions régulières

Consignes du travail noté 2

Vous devez rédiger un court rapport (en format « pdf », « Word 97/2000/XP », « RTF », « OpenDocument » ou « texte ») que vous transmettrez, par courriel, au chargé d’encadrement. L’objet de votre courriel doit commencer par « [INF6104][TRAVAIL2] » afin de lui permettre de classer rapidement ses messages. Dans le corps de votre message ainsi que dans votre rapport, vous devez bien indiquer vos nom et numéro d’étudiant ainsi que le numéro du travail.

Rappel : Dans ce cours, transmettez vos travaux par courriel et non en utilisant un outil de dépôt.

Le travail compte pour 10 points sur la note finale.

À l’aide du programme Java « Regex », trouvez tous les fichiers contenant une ligne ayant à la fois le mot « dog » et le mot « cat », dans tous les fichiers du répertoire etext00 du cédérom Gutenberg. Donnez la formulation ou la « construction » de votre expression régulière. Le mot dog peut apparaître avant ou après le mot cat. Par ailleurs, les mots peuvent être capitalisés (Dog ou dog) et ils peuvent être aux pluriel (dog ou dogs).

En reprenant l’expression régulière précédente, écrivez un programme basé sur les expressions régulières qui sélectionne tous les mots de plus de 3 caractères situés entre les mots « dog » et « cat ». En utilisant un programme similaire au programme Java « Regex » [1], testez votre programme sur les exemples suivants :

- Dogs are nice animals. Cats are not.
- My cat ate a mice. My dog once ate a fry.
- My dog once ate a fry. My cat ate a mice.
- The catalog of the best dogs is around here somewhere.

Votre programme devrait donner la liste des mots ayant plus de 3 caractères situés entre les mots dog et cat pour chacune des phrases. Donnez le résultat obtenu pour chaque expression.

Votre programme Java ne doit utiliser qu’une seule expression régulière. Celle-ci, et seulement celle-ci, doit sélectionner les mots requis. Il n’est pas permis de traiter les chaînes de caractères en Java autrement que par l’expression régulière pour réussir ce problème.

Indices :

- Certains étudiants tentent de faire ce travail sans avoir tout lu et sans avoir fait toutes les activités préparatoires. Si vous essayez d’aller trop vite et de faire les travaux notés sans avoir bien assimilé la matière, vous risquez d’avoir des difficultés.
- Étudiez bien le fichier Regex.java. Qu’affiche-t-il à l’écran. Exactement ? Que fait « m.group(m.groupCount()) » par exemple ? Prenez le temps de lire la documentation.
- Il peut être plus pratique de saisir votre expression régulière directement dans le code Java plutôt que de la saisir en ligne de commande. L’inconvénient est qu’il faut alors recompiler le programme Java à chaque test.


Les travaux du cours INF 6104 ne sont pas sous une licence Creative Commons.


[1Vous devrez peut-être écrire votre propre programme Java pour résoudre ce problème.