Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
tc_info:tp3 [2019/11/14 10:49] – edauce | tc_info:tp3 [2019/11/20 12:15] (Version actuelle) – edauce | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ===== TP5 : Expressions régulières ===== | ||
+ | |||
+ | Le TP sera réalisé en python. | ||
+ | |||
+ | La librairie '' | ||
+ | [[https:// | ||
+ | |||
+ | <code python> | ||
+ | import re | ||
+ | </ | ||
+ | |||
+ | === Exercice 1.1 : recherche de motifs === | ||
+ | |||
+ | La recherche dans un texte nécessite de définir un motif. Ce motif est défini dans une chaîne brute (qui n’interprète pas les caractères spéciaux). Une chaîne brute est préfixée par un '' | ||
+ | exemple : '' | ||
+ | pour rechercher un motif '' | ||
+ | nous recherchons dans le texte ''" | ||
+ | |||
+ | Testez l’exemple suivant : | ||
+ | |||
+ | <code python> | ||
+ | texte = "Un éléphant, ça trompe énormément!" | ||
+ | liste_mots = re.findall(r' | ||
+ | for i in range(len(liste_mots)) : | ||
+ | print(liste_mots[i]) | ||
+ | </ | ||
+ | |||
+ | Puis testez sur le texte ''" | ||
+ | Des portions de mots '' | ||
+ | |||
+ | Les " | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | Modifiez l’expression régulière afin de reconnaître uniquement (sur cet exemple) le mot ''" | ||
+ | |||
+ | === Exercice 1.2 === | ||
+ | Voici un petit texte qu'on pourra améliorer à son goût : | ||
+ | < | ||
+ | "Il y a 2 mois, ce n'est pas toi qui as découvert cette vieille armoire, cachée sous la toiture. | ||
+ | Moi, je te dis que c'est bien moi, il y a 2 ou 3 mois." | ||
+ | </ | ||
+ | |||
+ | On demande d' | ||
+ | - L'un des mots ''" | ||
+ | - tous les mots contenant ''" | ||
+ | |||
+ | === Exercice 1.3 : Extraction === | ||
+ | |||
+ | Les parenthèses servent à mémoriser un élément. | ||
+ | Testez l’exemple suivant qui extrait l' | ||
+ | <code python> | ||
+ | import re | ||
+ | une_date = " | ||
+ | ma_date = re.findall(r' | ||
+ | print(' | ||
+ | print(' | ||
+ | print(' | ||
+ | </ | ||
+ | |||
+ | Nous souhaitons modifier le format de date retournée par la commande système date. (il faut pour cela faire appel à la librairie os : '' | ||
+ | s = os.popen(" | ||
+ | par exemple '' | ||
+ | |||
+ | En extraire les différents éléments pour afficher : | ||
+ | |||
+ | '' | ||
+ | Voici maintenant l' | ||
+ | |||
+ | === Exercice 1.4 : Reconnaître un nombre décimal === | ||
+ | Il s'agit d' | ||
+ | |||
+ | Pour chaque nombre extrait, on demande d' | ||
+ | |||
+ | === Exercice 1.5 : Chercher des mots dans un texte === | ||
+ | |||
+ | Soit un texte stocké dans le fichier texte (par exemple : {{https:// | ||
+ | Pour ouvrir le fichier dont le nom est fourni en argument, on utilisera la commande : | ||
+ | f = open(' | ||
+ | On demande à l' | ||
+ | Le script doit parcourir chaque ligne du fichier et afficher chaque ligne où le mot est présent en le mettant en valeur en l' | ||
+ | Conclure l' | ||
+ | le mot .... est présent ... fois dans .. lignes du fichier ... | ||
+ | le mot .... n'a pas été trouvé dans le fichier ... | ||
+ | |||
+ | === Exercice 1.6 : Traitement d'une archive de messages === | ||
+ | |||
+ | Il s'agit d' | ||
+ | (liste de messages à trouver dans '' | ||
+ | |||
+ | <note tip> | ||
+ | Voir : {{http:// | ||
+ | </ | ||
+ | |||
+ | - ouvrir un de vos fichier mails et parcourir ses lignes | ||
+ | - écrire les motifs nécessaires pour extraire | ||
+ | <note tip> | ||
+ | Attention ! le sujet peut comporter '' | ||
+ | </ | ||
+ | |||
+ | Voici un exemple : un extrait d'un message et l' | ||
+ | < | ||
+ | |||
+ | Received: by mail.egim-mrs.fr (Postfix, from userid 331) id 4143F220C4; Mon, 2 Nov 2004 10:30:39 +0100 (CET) | ||
+ | Date: Mon, 2 Nov 2004 10:30:39 +0100 | ||
+ | From: XXX YYY < | ||
+ | To: linux@nnx.com | ||
+ | Subject: Re: PHP et les directory | ||
+ | Message-Id: < | ||
+ | References: < | ||
+ | MIME-Version: | ||
+ | Content-Type: | ||
+ | charset=iso-8859-1 | ||
+ | Content-Disposition: | ||
+ | Content-Transfer-Encoding: | ||
+ | In-Reply-To: | ||
+ | User-Agent: Mutt/1.4i | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | 30 Expéditeur : XXX YYY < | ||
+ | 31 Destinataire : linux@nnx.com | ||
+ | 32 Sujet : PHP et les directory | ||
+ | </ | ||
+ | |||
+ | === Exercice 1.7 : Reconnaissance des hyperliens d'une page WEB === | ||
+ | |||
+ | Il s'agit d' | ||
+ | |||
+ | <note tip> | ||
+ | * Le langage html sert à la mise en forme du texte, des contenus multimédia et des liens dans un navigateur web. | ||
+ | * Un document html est structuré à l'aide de **balises html** ''< | ||
+ | * La balise | ||
+ | * voir: | ||
+ | * https:// | ||
+ | * http:// | ||
+ | </ | ||
+ | |||
+ | A FAIRE : | ||
+ | * récupérer le fichier html de la page {{http:// | ||
+ | * l' | ||
+ | * appliquer le motif sur chaque ligne | ||
+ | * construire un dictionnaire contenant les couples (libellé : url) | ||
+ | * afficher le résultat de l' | ||
+ | |||
+ | < | ||
+ | < | ||
+ | html file ---> / | ||
+ | css file ---> / | ||
+ | HTML ---> http:// | ||
+ | CSS ---> http:// | ||
+ | Send us a link ---> http:// | ||
+ | submission guidelines ---> http:// | ||
+ | one on this site ---> http:// | ||
+ | Dave Shea ---> http:// | ||
+ | mediatemple ---> http:// | ||
+ | Zen Garden, the book ---> http:// | ||
+ | CC ---> http:// | ||
+ | A11y ---> http:// | ||
+ | GH ---> https:// | ||
+ | Mid Century Modern ---> /221/ | ||
+ | Andrew Lohman ---> http:// | ||
+ | Garments ---> /220/ | ||
+ | Dan Mall ---> http:// | ||
+ | Steel ---> /219/ | ||
+ | Steffen Knoeller ---> http:// | ||
+ | Apothecary ---> /218/ | ||
+ | Trent Walton ---> http:// | ||
+ | Screen Filler ---> /217/ | ||
+ | Elliot Jay Stocks ---> http:// | ||
+ | Fountain Kiss ---> /216/ | ||
+ | Jeremy Carlson ---> http:// | ||
+ | A Robot Named Jimmy ---> /215/ | ||
+ | meltmedia ---> http:// | ||
+ | Verde Moderna ---> /214/ | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | |||