Rappels sur les expressions régulières

La fonction search de la bibliothèque re permet de repérer des expressions dans une chaine...

Petits exercices de compréhension

Question 1

On considère les expressions régulières suivantes :

  1. abb*$
  2. (ab)+$
  3. ababb*
  4. [a.]*$
  5. (a|b|A|B)(ba)*

Dites, pour chacune des chaines de caractères suivantes, si elles sont « validées » par les expressions régulières.

  1. a
  2. aa
  3. ab
  4. AB
  5. abbb
  6. abab
  7. ababa
  8. ababb
  9. baba
  10. aaabbb
  11. aaaabbb
  12. abaca
  13. abacab

Question 2

Donnez une expression régulière pour reconnaitre les chaînes de caractères qui sont exactement :

Petit exercices de programmation

Question 1

Écrivez une fonction qui extrait toutes les plaques d'immatriculations dans une chaine de caractères. Par exemple, si on lui donne la chaine "Oups AA-229-AA pizza gateau AC-192-BC BZ-521-TB AJ-083-DQ hop ???", votre fonction devra renvoyer la liste ['AA-229-AA', 'AC-192-BC', 'BZ-521-TB', 'AJ-083-DQ'].

Remarque :

Question 2

  1. Écrivez une expression régulière pour les dates au format américain, c'est à dire quand l'année est en premier et le mois en deuxième. Attention :
    • les champs peuvent être séparés par des caractères "-", "/" ou "|",
    • les mois et jours peuvent être sur un ou deux caractères,
    • l'année peut être sur deux ou quatre caractères.

  2. Écrivez une fonction qui transforme une date au format américain en format français (jj/mm/aaaa).

  3. Écrivez une fonction qui transforme toutes les dates (américaines) d'un texte au format français.

Problèmes

Colonnes

On suppose qu'un fichier tableur est sauvegardé au format texte, et que les colonnes sont séparées par des virgules. (Ce format de fichiers existe : il s'appelle CSV, comme Comma Separated Values...)

Par exemple :

pizza, taille, remarque, prix (€)
fromage, normale,, 12
Vesuvio, XXL, pour les gros mangeurs, 16
quatre saisons, normale, végétarienne, 12
bambino, petite, menu enfant, 8
pizzana-split,, pizza dessert à la banane, 8

Écrivez une fonction qui prend en argument

et qui renvoie la liste des cases de la colonne correspondante à l'entier. Par exemple, sur la chaine ci-dessus, et pour l'entier 3, votre fonction renverra la liste ["prix (€)", "12", "16", "12", "8", "8"].

Remarque : il y a de nombreuses manières d'écrire cette fonction...

Couleurs et CCS

Dans un fichier CSS, on peut spécifier des bordures et leur couleur avec (par exemple) une ligne comme

  border-color : #ff0000 ;

pour spécifier la couleur rouge. On supposera que

Écrivez une fonction qui modifie les couleurs de toutes le bordures dans une description de style CSS. Votre fonction prend 4 arguments :

Par exemple, avec les arguments "(..., -50, 10, 33)", la ligne ci-dessus sera transformée en

  border-color : #cd0a21 ;