Expressions régulières



Documents pareils
Plus courts chemins, programmation dynamique

Chap 4: Analyse syntaxique. Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1

chapitre 4 Nombres de Catalan

Rappels Entrées -Sorties

Vers l'ordinateur quantique

Informatique Théorique : Théorie des Langages, Analyse Lexicale, Analyse Syntaxique Jean-Pierre Jouannaud Professeur

Chapitre 11. Séries de Fourier. Nous supposons connues les formules donnant les coefficients de Fourier d une fonction 2 - périodique :

TP1 - Prise en main de l environnement Unix.

INF 232: Langages et Automates. Travaux Dirigés. Université Joseph Fourier, Université Grenoble 1 Licence Sciences et Technologies

Créer et modifier un fichier d'import des coordonnées approximatives avec Excel

Théorie des Langages

Premiers exercices d Algèbre. Anne-Marie Simon

FctsAffines.nb 1. Mathématiques, 1-ère année Edition Fonctions affines

Cercle trigonométrique et mesures d angles

ALGORITHMIQUE ET PROGRAMMATION En C

Dérivation : cours. Dérivation dans R

Cours 02 : Problème général de la programmation linéaire

De même, le périmètre P d un cercle de rayon 1 vaut P = 2π (par définition de π). Mais, on peut démontrer (difficilement!) que

Chapitre 1 I:\ Soyez courageux!

Présentation de l application Livret personnel de compétences

La programmation linéaire : une introduction. Qu est-ce qu un programme linéaire? Terminologie. Écriture mathématique

HelpAndManual_unregistered_evaluation_copy GESTIONNAIRE D'ALARMES CENTRALISE OPTIM'ALARM. Manuel d'utilisation

Logiciel de Base. I. Représentation des nombres

Modèles à Événements Discrets. Réseaux de Petri Stochastiques

La syllabe (1/5) Unité intuitive (différent du phonème) Constituant essentiel pour la phonologie au même titre que phonème et trait

Limites finies en un point

TP : Shell Scripts. 1 Remarque générale. 2 Mise en jambe. 3 Avec des si. Systèmes et scripts

* très facile ** facile *** difficulté moyenne **** difficile ***** très difficile I : Incontournable T : pour travailler et mémoriser le cours

SOMMAIRE. Travailler avec les requêtes... 3

ARCHIVES DEPARTEMENTALES DE L'EURE ALEXANDRIE

Chapitre 1 Qu est-ce qu une expression régulière?

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Calcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes.

Cours No 3 : Identificateurs, Fonctions, Premières Structures de contrôle.

NOTATIONS PRÉLIMINAIRES

LE PROCESSUS ( la machine) la fonction f. ( On lit : «fonction f qui à x associe f (x)» )

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

Exemple 4.4. Continuons l exemple précédent. Maintenant on travaille sur les quaternions et on a alors les décompositions

2014/2015. Rapport 4 REALISE PAR : ISMAIL NAIT ABDELLAH OUALI SOUFIANE HOURRI MOHAMED OUSSAFI ENCADRE PAR : MME L.LAMRINI ANOUAR OUFQIR SMARTSIR

Indépendance Probabilité conditionnelle. Chapitre 3 Événements indépendants et Probabilités conditionnelles

Cours Langage C/C++ Programmation modulaire

FONCTIONS DE PLUSIEURS VARIABLES (Outils Mathématiques 4)

La mesure de Lebesgue sur la droite réelle

Programme d Accès Communautaire / Atelier 5 Initiation à Microsoft Outlook

Calculabilité Cours 3 : Problèmes non-calculables.

Chapitre 2. Eléments pour comprendre un énoncé

Notice pour Visiteur du Site Perso

Projet Matlab : un logiciel de cryptage

Conversion d un entier. Méthode par soustraction

F.N.M.F. Direction des Systèmes d'information CAHIER DES ANNEXES. des normes RM-TPG et RM-EH

Organigramme / Algorigramme Dossier élève 1 SI

LECTURE, RECHERCHE DOCUMENTAIRE ET INDEXATION

Programmation linéaire

VILLE DE VILLEURBANNE CONSEIL MUNICIPAL 5 JUILLET ooo-

ACTIVITÉ DE PROGRAMMATION

Continuité et dérivabilité d une fonction

Aide Webmail. L environnement de RoundCube est très intuitif et fonctionne comme la plupart des logiciels de messagerie traditionnels.

Exercice : la frontière des portefeuilles optimaux sans actif certain

Intégration et probabilités TD1 Espaces mesurés

TP 1. Prise en main du langage Python

Guide de réalisation d une campagne marketing

Chapitre 2. Matrices

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Qu est-ce qu une probabilité?

1 Introduction et installation

GenDbg : un débogueur générique. Didier Eymery Jean-Marie Borello Jean-Marie Fraygefond Odile Eymery Philippe Bion

DÉRIVÉES. I Nombre dérivé - Tangente. Exercice 01 (voir réponses et correction) ( voir animation )

MATHÉMATIQUES DISCRÈTES (4) CRYPTOGRAPHIE CLASSIQUE

Exercices Corrigés Premières notions sur les espaces vectoriels

Conférence des Nations Unies sur le Commerce et le Développement. La Plateforme de formation à distance TRAINFORTRADE GUIDE D'UTILISATION

Sujet proposé par Yves M. LEROY. Cet examen se compose d un exercice et de deux problèmes. Ces trois parties sont indépendantes.

Encryptions, compression et partitionnement des données

SRAL Saint Raphaël. Maison des associations 213, rue de la Soleillette Saint Raphaël. : : dromain.jean-pierre@neuf.

Géométrie dans l espace Produit scalaire et équations

1S Modèles de rédaction Enoncés

Géométrie Algorithmique Plan du cours

Informatique : Création de site Web Master 2 ANI TP 1

Proposition. Si G est un groupe simple d ordre 60 alors G est isomorphe à A 5.

Programmation linéaire

TEPZZ A_T EP A1 (19) (11) EP A1 (12) DEMANDE DE BREVET EUROPEEN. (51) Int Cl.: G07F 7/08 ( ) G06K 19/077 (2006.

Comment utiliser RoundCube?

Gnuplot. Chapitre Lancer Gnuplot. 3.2 Options des graphes

Grammaires d unification

Python - introduction à la programmation et calcul scientifique

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

TP 1 Prise en main de l environnement Unix

14/04/2014. un ensemble d'informations sur un sujet : exhaustif, non redondant, structuré, persistant. Gaëlle PERRIN SID2 Grenoble.

La classification automatique de données quantitatives

Projet Matlab/Octave : segmentation d'un ballon de couleur dans une image couleur et insertion d'un logo

Calcul différentiel sur R n Première partie

Utiliser Dev-C++ .1Installation de Dev-C++ Table des matières

L ARBORESCENCE. Qu est-ce qu un dossier? L arborescence?

UTILISER UN SITE COLLABORATIF

COMMUNICATEUR BLISS COMMANDE PAR UN SENSEUR DE POSITION DE L'OEIL

Maple: premiers calculs et premières applications

Université Paris-Dauphine DUMI2E 1ère année, Applications

Première partie. Préliminaires : noyaux itérés. MPSI B 6 juin 2015

nom : Collège Ste Clotilde

F411 - Courbes Paramétrées, Polaires

LES TYPES DE DONNÉES DU LANGAGE PASCAL

Transcription:

Expressions régulières Philippe Quéinnec 3 janvier 2011 1 / 18

Plan 1 2 3 4 3 / 18

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 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

Langage associé Une expression régulière m sur X dénit un langage L(m) sur X d'après les règles suivantes : L( ) est le langage vide ; L(Λ) = {Λ} ; Si a X, alors L(a) = {a} ; Pour tout expression régulière u et v sur X, L(u + v) = L(u) L(v) L(u v) = L(u)L(v) L(u ) = L(u) 6 / 18

Règles de calcul Λ e = e Λ = e e = e + Λ Λ = Λ e = e = e + = + e = e = Λ (e 1 + e 2 ) + e 3 = e 1 + (e 2 + e 3 ) e + e = e (e 1 + e 2 )e 3 = e 1 e 3 + e 2 e 3 e e = e e 1 (e 2 + e 3 ) = e 1 e 2 + e 1 e 3 (e ) = e (e 1 e 2 ) e 3 = e 1 (e 2 e 3 ) ee = e e e = Λ + ee ee = e ssi Λ e e = e ssi e = e 2 (e 1 e 2) e 1 = (e 1 + e 2 ) = e 1 (e 2e 1 ) (e 1 + e 2 ) = (e 1 + e 2 ) = (e 1 e 2 ) 7 / 18

Plan 1 2 3 4 8 / 18

Théorème d'arden Théorème d'arden Soient e 1 et e 2 deux expressions régulières. L'équation en x : x = e 1 x + e 2 admet e 1 e 2 pour solution. Si Λ / e 1, cette solution est unique. Tout système de n équations à n inconnues du type x i = e i,1 x 1 + + e i,n x n + e i,n+1 avec Λ / e i,j i, j n, admet une solution unique. 9 / 18

Expression régulière correspondante à un automate Soit A = (Q, X, δ, q 0, F ) un automate ni déterministe, avec Q = {q 0,..., q n }. Pour tout état q i Q, soit e i l'expression régulière qui représente le langage {m ˆδ(q i, m) F }. e i contient Λ si q i F, et l'ensemble des mots de la forme aw, a X et w {v ˆδ(q ia, v) F }, où q ia = δ(q i, a). On a donc un système : e i = a X ae ia + {Λ si q i F } La solution e 0 = {m X ˆδ(q 0, m) F } est L(A). Rq : la méthode fonctionne avec un automate non-déterministe et/ou non complet. 10 / 18

Plan 1 2 3 4 11 / 18

Automate associé à une expression régulière - Méthode morphologique e = Λ e = a e = e 1 e 2 e = e 1 + e 2 e = e 1 q 0 q a 0 q 1 q 01... q f 1 q 01... q f 1 ɛ q 0 ɛ q 02... ɛ q 02... q f 2 ɛ q 0 q 01... ɛ q f 1 q f 2 12 / 18

Automate associé Méthode des dérivées Soit e une expression régulière sur X et a un symbole de X. La dérivée (à gauche) de e par rapport à a est D a (e) = {m am e}. { Λ si Λ e Calcul des dérivées : soit (e) = si Λ e D a (a) = Λ et D a (b) = D a (Λ) = D a ( ) = D a (e 1 + e 2 ) = D a (e 1 ) + D a (e 2 ) On a alors : D a (e 1 e 2 ) = D a (e 1 ) e 2 + (e 1 ) D a (e 2 ) D a (e 1 ) = D a(e 1 ) e 1 Extension { aux mots : DΛ (e) = e D yx (e) = D x (D y (e)) x X, y X 13 / 18

Automate associé Soit e une expression régulière. Le nombre de ses dérivées successives est ni, et ces dérivées sont liées par le système : D y (e) = ad ya (e) + (D y (e)) a X Soient e 0, e 1,..., e n les diérentes dérivées de e avec e 0 = e = D Λ (e). Soit A = ({q 0... q n }, X, δ, q 0, F ) où q i est associé à e i, q i F si Λ e i et δ(q i, a) = q j si e j = D a (e i ). Alors A reconnaît le langage e 0. L'automate A est déterministe et minimal. 14 / 18

Plan 1 2 3 4 15 / 18

Syntaxe shell shell sens syntaxe théorique * un nombre quelconque de caractères X? un caractère 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} Exemple : ls sound0[ 5-7]*.mp? 16 / 18

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 e n e{n,m} de n à m fois e n + e n+1 +... e m e 1 e 2 alternative e 1 + e 2 () groupement p.e. (a b)* 17 / 18

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