Aller au contenu principal

TD 2 : expressions régulières

Expressions régulières​

Exercice 1 (Syntaxe des expressions régulières)​

Définition : L'ensemble des expressions régulières sur un alphabet Σ\Sigma est défini par :

  1. ∅,ϵ,s\varnothing, \epsilon, s quel que soit s∈Σs \in \Sigma sont des expressions régulières ;
  2. si α\alpha et β\beta sont deux expressions régulières, alors (α+β)(\alpha+\beta), αβ\alpha\beta et (α)∗(\alpha)^\ast sont des expressions régulières.

Identification des expressions régulières :

  1. aa est une expression régulière car membre de l'alphabet
  2. cc n'est pas une expression régulière car non membre de l'alphabet
  3. aa est une expression régulière et bb aussi donc (a+b)(a+b) est une expression régulière et aussi (b)∗(b)^\ast donc (a+b∗)(a+b^\ast) est une expression régulière
  4. (non traité)
  5. a∗ba^\ast b est une expression régulière puisque (a)∗(a)^\ast et bb le sont
  6. (abba+baba)∗(abba+baba)^\ast est une expression régulière (étoile d'une somme de concaténations de lettres)

Exercice 2 (Langage défini par une expression régulière)​

  1. Le seul mot du langage est aa.
  2. Les mots formés d'un aa suivi d'un nombre quelconque de bb, exemple abbbbabbbb.
  3. Les mots commençant par un aa suivi de aa ou de bb en nombre quelconque, exemple aababaaababa.
  4. Les concaténations quelconques de abbaabba et de babababa, exemple abbababaabbababa.

Exercice 3 (Construction de Kleene)​

Tentative :

Construction de Kleene

Exercice 4 (Simplifier la concaténation)​

Non traité dans ces notes.

Exercice 5 (Utilisation de grep)​

  1. grep -e PATH .bash_export
  2. last | grep -e sedelpeuch
  3. grep -e .c (attention : . désigne n'importe quel caractère ; pour rechercher les noms se terminant par .c, utiliser grep -e '\.c$')