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 », « RTF », « OpenDocument » ou « texte »).

Les archives RAR ne sont jamais acceptées.

Le travail compte pour 10 points. Il devrait vous prendre environ 3 heures.

Question 1 (1 point)

Concevez une expression régulière qui ne sélectionne que les « A » de « UQAM » dans un texte, et aucun autre « A ». Vous devez fournir la meilleure expression régulière possible, pas seulement une expression régulière qui puisse fonctionner dans certains cas.

Indice : Il existe une solution simple. Cherchez bien !

Question 2 (2 point)

Concevez une expression régulière qui sélectionne toutes les expressions commençant et se terminant par le même mot séparé par au plus 10 caractères comme « la vie la » dans « la vie la mort », ou « pas plus pas » dans « pas plus pas trop ».

Question 3 (2 point)

En utilisant le programme Java « Regex », traitez tous les fichiers du répertoire etext00 du cédérom Gutenberg et trouvez tous les fichiers contenant une ligne ayant à la fois le mot « dog » et le mot « cat ». Donnez la formulation ou la « construction » de votre expression régulière. Vous devez vous assurez que vous avez la meilleure expression régulière possible et que vous couvrez tous les cas possibles.

Question 4 (1 point)

Dans le répertoire etext01 du cédérom de Gutenberg, trouvez un fichier contenant un mot d’au moins 6 caractères, se terminant par la lettre c et n’utilisant que les lettres a,b,c,e,f,g,h,i,j,k,l et aucune majuscule. Donnez la formulation de votre expression régulière. Assurez-vous d’avoir la meilleure expression régulière possible.

Indice : Il existe un tel mot.

Question 5 (2 points)

Dans le répertoire etext02 du cédérom Gutenberg, trouvez un fichier contenant un mot d’au moins 6 caractères répété au moins 5 fois dans une même ligne. Donnez la formulation de votre expression régulière.

java Regex "\b(\w6,100)\b.*\b\1\b.*\b\1\b.*\b\1\b.*\b\1\b" /mnt/cdrom/etext02/* /mnt/cdrom/etext02/lacob11.txt Walker

Indice : Il existe un tel fichier.

Question 6 (2 points)

Les marchés boursiers rendent souvent disponibles les données sous la forme de fichiers textes dans lesquels chaque ligne contient la date (selon le format mois/jour/année) suivie des différentes valeurs d’une action (valeur maximale pour la journée, valeur minimale, etc.) séparées par des virgules (CSV). Pour des exemples, référez-vous à Microsoft Money Central [1].

Écrivez un programme Java contenant au plus 10 lignes, qui sélectionne automatiquement l’année et la deuxième valeur monétaire. Votre programme ne doit pas contenir d’instruction du type « for » ou « while ». Il doit reposer entièrement sur le paquetage java.util.regex et utiliser, au plus, une seule expression régulière.

Si votre programme s’exécute ainsi :

java monprogramme 12/12/2005,43.45,32.1,

on doit obtenir à l’écran : « 2005 32.1 ».

import java.util.regex.* ; public class garbage public static void main(String[] args) Pattern RegexCompile = Pattern.compile("[0-9]*/[0-9]*/([0-9]*),[0-9]*\.[0-9]*,([0-9]*\.[0-9]*)") ; System.out.println(RegexCompile.matcher(args[0]).replaceAll("$1 $2")) ;

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


[1Vous n’avez absolument pas besoin de vous rendre sur le site Money Central pour faire ce travail. Ce site, comme d’autres du même genre, vous permet d’enregistrer des fichiers CSV gratuitement, mais il faut parfois chercher un peu pour trouver comment faire.