Cours sur les expressions régulières
47 pages
Catalan

Cours sur les expressions régulières

Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres
47 pages
Catalan
Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres

Description

-1-INF 421 Luc MarangetExpressions r´eguli`eres(rationnelles)Luc.Maranget@inria.frhttp://www.enseignement.polytechnique.fr/profs/informatique/Luc.Maranget/421/-2-Les mots◮ Soit Σ un alphabet (ensemble de caract`eres).∗◮ Les mots (ensemble Σ ) sont les suites finies de caract`eres.∗◮ Un langage est un sous-ensemble de Σ .⊲ Langage des mots franc¸ais.⋆ Σ ={a,b,...} (alphabet usuel, avec accents).⋆ D´efini par, le dictionnaire (de l’Acad´emie, si on y tient).⊲ Langage des ´ecritures en base 10.⋆ Σ ={0,1,...,9} (chiffres).⋆ D´efini par une p´eriphrase genre ( le chiffre 0, ou une suitenon-vide de chiffres qui ne commence pas par 0 ).-3-Op´erations sur les motsUn mot est par exemple m = a a a (n longueur de m).0 1 n−1◮ R´ecup´erer le caract`ere d’indice k : a .k◮ Concat´ener deux mots : les mettre l’un derri`ere l’autre.′ ′ ′ ′mm = a a a a a a ′0 1 n−10 1 n −1⊲ Op´eration associative.⊲ Mot vide ´el´ement neutre a` gauche et a` droite(ǫm = mǫ = m).′ ′⊲ Dans t = mm , m est un pr´efixe de t, m est un suffixe de t.′◮ Notation abr´eg´ee : t = mm .◮ Notation des sous-mots :m[ij[= a a ai i+1 j−1-4-Les mots sont des chaˆınesaLa classe String , du package (import´e par d´efaut) java.lang.◮ Mot vide : "".◮ Pour r´ecup´erer le caract`ere d’indice k.public char charAt(int index)◮ Concat´ener deux chaines :String t = m0 + m1 ;Ou m´ethode concat.String t = m0.concat(m1) ;◮ D´ecomposer en pr´efixe et suffixe, avec la m´ethode ...

Sujets

Informations

Publié par
Nombre de lectures 75
Langue Catalan

Extrait

-1-
INF 421
Luc Maranget
Expressionsre´guli`eres (rationnelles)
Luc.Maranget@inria.fr http://www.enseignement.polytechnique.fr/profs/ informatique/Luc.Maranget/421/
-2-
Les mots
Soit Σ unalphabetre`tcaracedelbme(ens).es
Lesmots(ensemble Σetiuinsedsearac)ntsosslect`eres.
Unlangageest un sous-ensemble de Σ.
 s. ¸Lang g a e des mots francai Σ ={ab . . .}(alphabet usuel, avec accents). tiicnaonariped,lDne´ient).e,sionytcAdae´imri(eedl
0.e1asnbsereutirce´sedegagnaL Σ ={01 . . . 9}(chiffres). arriupnhepni´pegDen´reraseele chiffre0, ou une suite non-vide de chiffres qui ne commence pas par0.
-3-
Op´erationssurlesmots
Un mot est par exemplem=a0a1  an1(nlongueur dem).
act`eredindicece´Re´pulrerracek:ak.
er.atueleri`rrdeunlrettemsel:stomxuedCnoac´tnere
mm=a0a1  an1a0a1  an1
veti.ssnaiaocre´poitaO ucheet`adurtoriet`eagae´emtnenvtdi´eleMo (ǫm=mǫ=m). Danst=mm,mest unex´eprdet,mest unsuffixedet.
egeabr´tionNota:et=mm. ´
Notation des sous-mots :
m[i  j[=aiai+1  aj1
-4-
Lesmotssontdeschaıˆnes La classeStringaacup,drape´tropmi(egakd´efaut)java.lang.
Mot vide :"".
erpleerrroucu´ederidniarace`tcecPk. ´ public charcharAt(intindex)
Concatener deux chaines : ´ String t=m0+m1;
Oum´ethodeconcat. String t=m0.concat(m1) ;
ce´Dpoomreser´npxeeedohtem´laecave,xsuetsubstring. String pref=m.substring(0,k)//m[0  k[ String suff=m.substring(k)//m[k  n[
a
http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html
-5-
Ope´rationssurleslangages
Union ensembliste.
oncaCnoitane´t
Iert´ioatn.
L1L2={m1m2|m1L1m2L2}
L0={ǫ}
Autrement dit :
Ln+1=LnL
L=[Li iN
mL⇐⇒m=m1m2  mnavecmiL
-6-
Lesexpressio´eglie`res ns r u
Une representationpd’un langageL. ´
Le mot videǫr´esrepetne{ǫ}.
caraceLeert`cntse´eprree{c}.
ivelaetnrtaLp1|p2represenetL1L2.
nent´ioatcaLacnop1p2ntse´reepreL1L2.
e´pe´raLnoititp*esereprnteL. ´
Pourlinformaticien,lade´nitionm´eriteunede´compositionen syntaxeetse´amtnqieu.
-7-
Syntaxedesexpressionsre´guli` eres
Un motifpd´eniainsi.ets
Le mot videǫest un motif.
Uarnct`aceercest un motif.
Sip1etp2 . .sont des motifs, alors. vetinaertlaLp1|p2est un motif. acLcaonnne´toitap1p2est un motif.
Sipest un motif, alors. . . nioitetp´´earLp*est un motif.
Importantderrbraas,elpsndeused´estunCecuutsertoidnnti precisions. ´
P={ǫ} ⊎Σ(P× {| × }P)(P× {*})
-8-
a
Exemple de motif
*
b
|
Enpratiqueon´ecrit(syntaxeconcre`te)
b
*
a
(a(b*))|(b(a*)) ou plus simplementab*|ba*
-9-
Priorite´sdesope´rateurs
Cestcommepourlesexpressionsarithme´tiques.Parordre croissantdepriorit´e.
Latlreantive|(comme l’addition).
aLocncat´enationoc(lemmlumalpitaticn,ioutpetrˆee omis).
pee´aL´rontiti*mmoc,ex`esimalessuiapal).ceanpost(
Donc
ab*se comprend commea(b*).
ab|cse comprend comme(ab)|c.
ab*|cse comprend comme(a(b*))|c.
-10-
Encore plus pr´ is ec
ab*se comprend commea(b*).
a
ab|cse comprend comme(ab)|c.
| a b
* b
ab*|cse comprend comme(a(b*))|c.
a
| * b
c
c
-11-
Lespriorite´sner´esolventpastout
Comment comprendreabc, commea(bc)ou(ab)c?
a
b
c
a
b
c
Celanaaunalpasdimportance,enraisondelassociativit´ede laconcate´nation.
Mais il y a bien deux arbres possibles.
Undernierd´etail:onpeutrepr´esenterlemotifvidepar().
  • Univers Univers
  • Ebooks Ebooks
  • Livres audio Livres audio
  • Presse Presse
  • Podcasts Podcasts
  • BD BD
  • Documents Documents