Vous êtes sur la page 1sur 18

Les expressions régulières

Introduction
Une expression régulière est, littéralement, une
présentation formelle d’un langage régulier : elle
définit la forme (ou le motif) qui sert de modèle aux
mots du langage en question.

2 W.SAADI
Expression régulière (1)
Soit  un alphabet quelconque ne contenant pas les
symboles { ,+, |, ., (, )}. Une expression régulière est un
mot défini sur l’alphabet  { ,+, |, ., (, )} permettant de
représenter un langage régulier de la façon suivante :
 est une expression régulière qui dénote (représente) le
langage vide
 L’expression régulière  dénote le langage L = {}
 L’expression régulière a (a ) dénote le langage L = {a}

3 W.SAADI
Expression régulière (2)
 Si r est une expression régulière qui dénote L alors (r)
(respectivement (r)+) est l’expression régulière qui dénote L
(respectivement L+)
 Si r est une expression régulière dénotant L et s une
expression régulière dénotant L′ alors (r)|(s) est une
expression régulière dénotant L + L′
 L’expression régulière (r).(s) (ou simplement (r)(s)) dénote le
langage L.L′

4 W.SAADI
Définition
Une expression E est une expression régulière sur un
alphabet  si et seulement si
E= ou
 E =  ou
 E = a avec a   ou
 E = E1 | E2 et E1 et E2 sont deux expressions régulières sur
 ou
 E = E1.E2 et E1 et E2 sont deux expressions régulières sur
 ou
 E = E1* et E1 est une expression régulière sur 
Exemple 1
 a : dénote le langage régulier an (n  0) ;

 (a + b) : dénote les mots dans lesquels le symbole a ou b


se répètent un nombre quelconque de fois. Elle dénote
donc le langage de tous les mots sur {a, b} ;

 (a+b) ab(a+b) : dénote tous les mots sur {a, b} contenant


le facteur ab.

6 W.SAADI
Priorité des operateurs
Afin d’alléger les expressions régulières, on introduit les priorités

suivantes : priorité(*) > priorité(.) > priorité(+)

 Les operateurs + et * (l’étoile de Kleen et l’étoile propre) ont

la plus haute priorité.

 La concaténation a la deuxième plus haute priorité et est

associative a gauche.

 + ou (|) a la plus faible priorité et est associative a gauche.

7 W.SAADI
Exemple 2
(a) a| ((b)*(c)) equivalent à : a | b*c

(b) L’expression 0+10* est donc équivalente à

(0+(1(0)*)).

8 W.SAADI
Expressions régulières ambiguës
Une expression régulière est dite ambiguë s’il existe au

moins un mot pouvant être mis en correspondance avec

l’expression régulière de plusieurs façons. Cette définition

fait appel à la correspondance entre un mot et une

expression régulière. Il s’agit, en fait, de l’opération qui

permet de dire si le mot appartient au langage décrit par

l’expression régulière.

9 W.SAADI
Exemple 3
prenons l’expression régulière a b . Soit à décider si le mot
aab est décrit ou non par cette expression. On peut
écrire :

Ainsi, le mot est décrit par cette expression régulière. Il n’y


a qu’une seule façon qui permet de le faire correspondre.
Ceci est valable pour tous les mots de ce langage.
l’expression régulière n’est donc pas ambiguë.

10 W.SAADI
Exemple 4
Considérons l’expression (a|b) a(a|b) décrivant tous les
mots sur {a, b} contenant le facteur a. Soit à faire
correspondre le mot abaab, on a :

Il existe donc au moins deux façons pour faire correspondre


abaab à l’expression précédente, elle est donc ambiguë.

11 W.SAADI
Propriétés sur les expressions régulières
Si p, q et r sont trois expressions régulières alors :

 p+q=q+p;  (p + )*.r = p*.r ;


 (p + q) + r = p + (q + r) ;  p* =  + p.p* ;
 (p.q).r = p.(q.r) ;  * =  ;

 p. = .p = ;  (p*) *= p* ;
 p.  = .p = p ;
 p + = + p =p;
 p*.p = p.p* ;

12 W.SAADI
Langage régulier ou rationnel (définition 3)
Un langage est dit régulier si et seulement s’il est dénoté
(représenté) par une expression régulière et on écrit L(E).
La correspondance entre expression et langage n’est pas
biunivoque : chaque expression dénote un unique langage, mais
à un langage donné peuvent correspondre plusieurs
expressions différentes.
Ainsi, les deux expressions suivantes : a*(a*ba*ba*)* et a*(ba*ba*)*
sont deux variantes notationnelles du même langage sur
l’alphabet {a, b}.

13 W.SAADI
Définition (langage décrit par une
expression régulière)
Le langage L(E) décrit par une expression régulière E définie sur un
alphabet A est défini par :

 L(E) =  ; si E = ,

 L(E) ={} si E =  ,

 L(E) = {a} si E = a,

 L(E) = L(E1)  L(E2) si E = E1|E2,

 L(E) = L(E1).L(E2) si E = E1.E2,

 L(E) = L(E1)* si E = E1* où E1 est une expression régulière sur .


Exemple
Sur l’alphabet A = {a, b, c} :

 E1 = a*bbc* décrit le langage

 L(E1) =

 E2 = (a|b|c)*(bb | cc)a* décrit le langage

 L(E2) =
Expressions équivalentes

Deux expressions régulières sont équivalentes si elles

dénote (engendrent, représente) le même langage.

16 W.SAADI
Exercice
Soit A={a, b, c, d} un vocabulaire.

Donner une description en français des langages


donnés par les expressions régulières suivantes :

AA, (+A) (+A), (AA)*, A*aA*, A*abA*, A* a A* b A*


et (ab)*.

17 W.SAADI
Solution
 AA est le langage des mots de longueur 2.
 (+A) (+A) est le langage des mots de longueur au plus 2.
 (AA)* est le langage des mots de longueur paire.
 A* a A* est le langage des mots ayant au moins une
occurrence de a.
 A*abA* est le langage des mots ayant au moins une
occurrence du facteur ab.
 A* a A* b A* est le langage des mots ayant au moins une
occurrence de a puis ensuite une occurrence d’un b.
 (ab)* est le langage des mots commençant par a, finissant par
b et n’ayant pas deux a ou deux b consécutifs.
18 W.SAADI

Vous aimerez peut-être aussi