Académique Documents
Professionnel Documents
Culture Documents
Expressions régulières
Philippe Quéinnec
3 janvier 2011
1 / 18
Expressions Régulières
Automate → expression régulière
Expression Régulière → Automate
Conclusion
Plan
1 Expressions Régulières
4 Conclusion
3 / 18
Expressions Régulières
Automate → expression régulière
Expression Régulière → Automate
Conclusion
Exemple d'utilisation
> ls monrepertoire/
memoire.aux memoire.tex picture004.jpg rapsody.jpg
memoire.dvi picture001.jpg presentation.tex raw.jpg
memoire.old picture002.jpg price-list.txt
memoire.log picture003.jpg taches.txt
Acher uniquement les images :
ls *.jpg
Eacer les chiers relatifs à memoire :
rm mem*
Eacer les images commençant par pic, de 1 à 3 :
rm pic*[1-3].jpg
4 / 18
Expressions Régulières
Automate → expression régulière
Expression Régulière → Automate
Conclusion
Expressions Régulières
Expressions régulières
Soit X un alphabet ni, et Y = {(, ), ∗, +, •, Λ, ∅} un alphabet
disjoint. Un mot m de (X ∪ Y ) est une expression régulière sur X
ssi :
soit m est ∅ ou Λ ou un symbole de X ,
soit m est de la forme (x + y ) ou (x • y ) ou x ∗ , où x et y sont
des expressions régulières sur X .
5 / 18
Expressions Régulières
Automate → expression régulière
Expression Régulière → Automate
Conclusion
Langage associé
6 / 18
Expressions Régulières
Automate → expression régulière
Expression Régulière → Automate
Conclusion
Règles de calcul
7 / 18
Expressions Régulières
Automate → expression régulière
Expression Régulière → Automate
Conclusion
Plan
1 Expressions Régulières
4 Conclusion
8 / 18
Expressions Régulières
Automate → expression régulière
Expression Régulière → Automate
Conclusion
Théorème d'Arden
Théorème d'Arden
Soient e1 et e2 deux expressions régulières. L'équation en
x : x = e1 x + e2 admet e1∗ e2 pour solution. Si Λ ∈/ e1 , cette solution
est unique.
9 / 18
Expressions Régulières
Automate → expression régulière
Expression Régulière → Automate
Conclusion
ei aeia + {Λ si qi ∈ F}
X
=
a ∈X
La solution e0 = {m ∈ X ∗ | δ̂(q0 , m) ∈ F } est L(A).
Rq : la méthode fonctionne avec un automate non-déterministe
et/ou non complet.
10 / 18
Expressions Régulières
Automate → expression régulière
Expression Régulière → Automate
Conclusion
Plan
1 Expressions Régulières
4 Conclusion
11 / 18
Expressions Régulières
Automate → expression régulière
Expression Régulière → Automate
Conclusion
e=Λ / GFED
@ABC
89:;
?>=<
q0
e=a / GFED
@ABC
q0 a / GFED
@ABC
89:;
?>=<
q1
/ GFED
@ABC / GFED
@ABC + GFED
@ABC / GFED
@ABC
89:;
?>=<
e = e1 • e2 q01 / ... qf 1 q02 / ... qf 2
@ABC
GFED
q01 / ... / GFED
@ABC
89:;
?>=<
qf 1
ooo7
/ GFED
@ABC
oo
e = e1 + e2 q0 oOOO
@ABC
GFED / GFED
@ABC
89:;
?>=<
OO
O'
q02 / ... qf 2
e = e1 ∗ / GFED
@ABC
89:;
?>=<
q0 / GFED
@ABC
q01 / ... / GFED
@ABC
89:;
?>=<
qf 1
h
12 / 18
Expressions Régulières
Automate → expression régulière
Expression Régulière → Automate
Conclusion
13 / 18
Expressions Régulières
Automate → expression régulière
Expression Régulière → Automate
Conclusion
Automate associé
D y (e ) = aDya (e ) + ∆(Dy (e ))
X
a∈X
Soient e0 , e1 , . . . , en les diérentes dérivées de e avec
e0 = e = DΛ (e ). Soit A = ({q0 . . . qn }, X , δ, q0 , F ) où qi est
associé à ei , qi ∈ F si Λ ∈ ei et δ(qi , a) = qj si ej = Da (ei ).
Alors A reconnaît le langage e0 .
L'automate A est déterministe et minimal.
14 / 18
Expressions Régulières
Automate → expression régulière
Expression Régulière → Automate
Conclusion
Plan
1 Expressions Régulières
4 Conclusion
15 / 18
Expressions Régulières
Automate → expression régulière
Expression Régulière → Automate
Conclusion
Syntaxe shell
Exemple : ls sound0[5-7]*.mp?
16 / 18
Expressions Régulières
Automate → expression régulière
Expression Régulière → Automate
Conclusion
Syntaxe classique
(éditeurs vi/emacs, Perl/PHP, générateur d'analyseur lexical. . . )
sens syntaxe théorique
. un caractère (quasi) quelconque X
[123] un caractère parmi . . . {1, 2, 3} ou 1 + 2 + 3
[1-5] un caractère parmi intervalle {1, 2, 3, 4, 5} ou . . .
[1-5] complémentaire X \ {1, 2, 3, 4, 5}
e* répétition e∗
e+ répétition au moins une fois ee ∗
e? 0 ou 1 fois e+Λ
e{n} n fois en
e{n,m} de n à m fois e n + e n+1 + . . . e m
e1 |e2 alternative e1 + e2
() groupement p.e. (a|b)*
17 / 18
Expressions Régulières
Automate → expression régulière
Expression Régulière → Automate
Conclusion
Conclusion
Il y a équivalence entre :
les langages rationnels (Rat) ;
les langages reconnus par les AFN ;
les langages reconnus par les AFD ;
les langages dénis par les expressions régulières.
18 / 18