SlideShare une entreprise Scribd logo
1  sur  15
L ES EXPRESSIONS RÉGULIÈRES EN
J AVA
              www.abyster.com

                 1
2
               Q U ’ EST CE QU ’ UNE
          EXPRESSION RÉGULIÈRE ?


       Chaine de caractères qui décrit un ensemble de
        chaines de caractères.

       Exemple: l’expression régulière [0-9][a-z] décrit
        l’ensemble des chaines de caractères composées
        d’un chiffre et d’une lettre
3
             A QUOI SERVENT LES
        EXPRESSIONS RÉGULIÈRES ?


       De nombreuses utilités en informatique, elles servent
        principalement pour réaliser :
           des filtres : ne conserver que certaines lignes d’un
            fichier texte, de la forme nom=valeur par exemple
           des contrôles : vérifier qu’une donnée entrée par un
            utilisateur a bien le format d’une adresse IP par
            exemple.
           des substitutions : remplacer un motif par une
            chaine de caractères précise.
           des découpages : récupérer une partie d’une chaine
            de caractères par exemple découper une ligne par
            rapport aux « ; » dans le cas d’un fichier .csv.
C OMPOSANTES D ’ UNE EXPRESSION
4
       RÉGULIÈRES : L ES CARACTÈRES



       X    Le caractère X
           Le caractère 
       t    Le caractère tabulation
       n    Le caractère nouvelle ligne
       r    Le caractère retour chariot
       f    Le caractère saut de page
       Exemple : ABtCD représente la chaine de caractère
        AB suivi d’une tabulation suivi de CD
C OMPOSANTES D ’ UNE EXPRESSION
5       RÉGULIÈRES : L ES CLASSES DE CARACTÈRES




        [abc]        Les caractères a, b ou c

        [^abc]       Les caractères qui ne sont pas a, b ou c

        [a-z]        Un caractère de a à z

        [a-zA-Z]     Un caractère de a à z minuscule ou
         majuscule

        [0-9]        Un caractère numérique

        Exemple : [0-9][a-z] représente une chaine de
         caractères constituée d’un chiffre puis d’une lettre.
C OMPOSANTES D ’ UNE EXPRESSION
6       RÉGULIÈRES : L ES CLASSES DE CARACTÈRES
                                          PRÉDÉFINIES




        .    Un caractère quelconque

        d   Un caractère numérique : [0-9]

        D   Un caractère non numérique : [^0-9]

        s   Un caractère blanc: [ tnx0Bfr]

        S   Un caractère non blanc : [^s]
C OMPOSANTES D ’ UNE EXPRESSION
7   RÉGULIÈRES : C LASSES DE CARACTÈRES
                                 POSIX


       p{Lower}    Une misnuscule : [a-z]

       p{Upper}    Une majuscule :[A-Z]

       p{Alpha}    Un caractère alphabétique : [p{Lower}p{Upper}]

       p{Digit}    Un chiffre : [0-9]

       p{Alnum}    Un caractère alphanumérique : [p{Alpha}p{Digit}]

       p{Punct}    Ponctionation : !"#$%&'()*+,-./:;<=>?@[]^_`{|}~

       p{Blank}    Espace ou tabulation : [ t]

       p{XDigit}   Un caractère hexadécimal: [0-9a-fA-F]

       p{Space}    Un caractère blanc[ tnx0Bfr]
C OMPOSANTES D ’ UNE EXPRESSION
8   RÉGULIÈRES : L ES CARACTÈRES DE
                                       RÉPÉTITION


       X?       X une fois ou zéro fois

       X*       X zéro ou plusieurs fois

       X+       X une fois au moins (XX*)

       X{n}     X n fois

       X{n,}    X, au moins n fois

       X{n,m}   X entre n et m fois
C OMPOSANTES D ’ UNE EXPRESSION
9
        RÉGULIÈRES : O PÉRATEURS LOGIQUES




       XY      X suivi de Y

       X|Y     X ou Y
10                                    E XEMPLES

        Expression régulière correspondant à une
         adresse IP
        Expression régulière correspondant à une
         adresse email,
        Expression régulière correspondant à un numéro
         de téléphone,
        Expression régulière correspondant à une URL,
        Expression régulière correspondant à un nombre
         réel,
11
              U TILISATION AVEC J AVA :
                                        REMARQUE


        Le caractère  a un sens pour java, il faut donc le
         doubler dans l’écriture des expressions régulières
         pour qu’il ne soit pas interprété par java. Par
         exemple, on écrira . à la place de
12
     U TILISATION AVEC J AVA : L ES
                                          MÉTHODES


        La classe String
            public boolean matches(String regex)

            public String replaceAll(String regex,
             String replacement)

            public String[] split(String regex)
13
         E XPRESSIONS REGULIÈRES EN
                               J AVA

         Trois classes interviennent :

               Pattern : permet d'obtenir une version compilée d'une expression
                régulière.

               Matcher : permet d'analyser une chaîne en entrée à partir
                d'un Pattern.

               PatternSyntaxException : exception levée lorsque la syntaxe d'une
                expression régulière n'est pas correcte.
                      try{
                             Pattern p = Pattern .compile("a*b|c");
                             String entree = "aabbbcab";
                             Matcher m = p.matcher(entree);
                             while (m.find())
                              System.out.println(entree.substring(m.start(), m.end()));
                      }catch(PatternSyntaxException pse){ }
E XPRESSIONS REGULIÈRES EN J AVA :
14
                      M ÉTHODES DE PATTERN



        static Pattern compile( String expreg)

        Matcher matcher (CharSequence entree)

        String[] split ( charSequence entree)
E XPRESSIONS REGULIÈRES EN J AVA :
15
           Q UELQUES MÉTHODES DE M ATCHER



        int start()

        int end()

        String group()

        int groupCount()

        boolean find()

        boolean matches()

Contenu connexe

Tendances

Algorithmique seconde (corrigés et commentaires)
Algorithmique seconde (corrigés et commentaires)Algorithmique seconde (corrigés et commentaires)
Algorithmique seconde (corrigés et commentaires)DriNox NordisTe
 
Ch8 correction exercices (1)
Ch8 correction exercices (1)Ch8 correction exercices (1)
Ch8 correction exercices (1)abdellah12
 
algorithme tronc commun lycée
algorithme tronc commun lycéealgorithme tronc commun lycée
algorithme tronc commun lycéeKayl Mido
 
Les Structures de données
Les Structures de donnéesLes Structures de données
Les Structures de donnéesHichem Kemali
 
Mémento caml
Mémento camlMémento caml
Mémento camlzan
 
Ch 5 toplogie et calcul differentiel
Ch 5 toplogie et calcul differentielCh 5 toplogie et calcul differentiel
Ch 5 toplogie et calcul differentielsarah Benmerzouk
 
Résumé Algorithme et Programmation
Résumé Algorithme et ProgrammationRésumé Algorithme et Programmation
Résumé Algorithme et Programmationborhen boukthir
 

Tendances (11)

Algorithmique seconde (corrigés et commentaires)
Algorithmique seconde (corrigés et commentaires)Algorithmique seconde (corrigés et commentaires)
Algorithmique seconde (corrigés et commentaires)
 
Ch8 correction exercices (1)
Ch8 correction exercices (1)Ch8 correction exercices (1)
Ch8 correction exercices (1)
 
algorithme tronc commun lycée
algorithme tronc commun lycéealgorithme tronc commun lycée
algorithme tronc commun lycée
 
algorithmique
algorithmiquealgorithmique
algorithmique
 
Les Structures de données
Les Structures de donnéesLes Structures de données
Les Structures de données
 
Correction
CorrectionCorrection
Correction
 
Mémento caml
Mémento camlMémento caml
Mémento caml
 
Excel : Les fonctions mathématiques
Excel : Les fonctions mathématiquesExcel : Les fonctions mathématiques
Excel : Les fonctions mathématiques
 
Ch 5 toplogie et calcul differentiel
Ch 5 toplogie et calcul differentielCh 5 toplogie et calcul differentiel
Ch 5 toplogie et calcul differentiel
 
Résumé Algorithme et Programmation
Résumé Algorithme et ProgrammationRésumé Algorithme et Programmation
Résumé Algorithme et Programmation
 
ALF 6 - Parser
ALF 6 - ParserALF 6 - Parser
ALF 6 - Parser
 

En vedette

Autoformation windev-express-17
Autoformation windev-express-17Autoformation windev-express-17
Autoformation windev-express-17zahir66
 
Poinsettias F L O A R E A C R A C I U N U L U I Pps 09[1]
Poinsettias   F L O A R E A  C R A C I U N U L U I Pps 09[1]Poinsettias   F L O A R E A  C R A C I U N U L U I Pps 09[1]
Poinsettias F L O A R E A C R A C I U N U L U I Pps 09[1]mari_ma
 
Comment intégrer efficacement les réseaux sociaux dans sa stratégie e-commerce ?
Comment intégrer efficacement les réseaux sociaux dans sa stratégie e-commerce ?Comment intégrer efficacement les réseaux sociaux dans sa stratégie e-commerce ?
Comment intégrer efficacement les réseaux sociaux dans sa stratégie e-commerce ?Emilie Marquois
 
Audit fiscal cours/1er Chapitre: Démarche de l'Audit Fiscal
Audit fiscal cours/1er Chapitre: Démarche de l'Audit FiscalAudit fiscal cours/1er Chapitre: Démarche de l'Audit Fiscal
Audit fiscal cours/1er Chapitre: Démarche de l'Audit Fiscalbouchra elabbadi
 
Planificación de temas selectos de biología II del del 09 de marzo al 17 de a...
Planificación de temas selectos de biología II del del 09 de marzo al 17 de a...Planificación de temas selectos de biología II del del 09 de marzo al 17 de a...
Planificación de temas selectos de biología II del del 09 de marzo al 17 de a...INSTITUTO TECNOLÓGICO DE SONORA
 
Unbezahlte arbeitszeit in_Österreich
Unbezahlte arbeitszeit in_ÖsterreichUnbezahlte arbeitszeit in_Österreich
Unbezahlte arbeitszeit in_ÖsterreichFESD GKr
 
E Co C Bratislava 09 Persoenlichkeit
E Co C Bratislava 09 PersoenlichkeitE Co C Bratislava 09 Persoenlichkeit
E Co C Bratislava 09 Persoenlichkeitthomasabauer
 
mediscript Kalendar 2013 "Lernen heisst Entdecken"
mediscript Kalendar 2013 "Lernen heisst Entdecken"mediscript Kalendar 2013 "Lernen heisst Entdecken"
mediscript Kalendar 2013 "Lernen heisst Entdecken"mediscript Team
 
Lernen Mit Web 2.0 (IHK Stuttgart Juli 2009)
Lernen Mit Web 2.0 (IHK Stuttgart Juli 2009)Lernen Mit Web 2.0 (IHK Stuttgart Juli 2009)
Lernen Mit Web 2.0 (IHK Stuttgart Juli 2009)Martina Goehring
 
Kelantan
KelantanKelantan
Kelantanwmzuri
 
Financial Institutions Must Support Their Clients on Twitter
Financial Institutions Must Support Their Clients on TwitterFinancial Institutions Must Support Their Clients on Twitter
Financial Institutions Must Support Their Clients on TwitterChristophe Langlois
 
Plan de mejora jefatura de sector 06 21 fts4006o
Plan de mejora jefatura de sector 06  21 fts4006oPlan de mejora jefatura de sector 06  21 fts4006o
Plan de mejora jefatura de sector 06 21 fts4006oRoberto Carlos Vega Monroy
 
EdChang - Parallel Algorithms For Mining Large Scale Data
EdChang - Parallel Algorithms For Mining Large Scale DataEdChang - Parallel Algorithms For Mining Large Scale Data
EdChang - Parallel Algorithms For Mining Large Scale Datagu wendong
 
Uv08 Dcii Tema 3 DiseñO Y Gestion Servicios
Uv08 Dcii Tema 3 DiseñO Y Gestion ServiciosUv08 Dcii Tema 3 DiseñO Y Gestion Servicios
Uv08 Dcii Tema 3 DiseñO Y Gestion ServiciosJordi Miro
 
Ati flash cards 09, medications affecting fluid, electrolytes, minerals, and ...
Ati flash cards 09, medications affecting fluid, electrolytes, minerals, and ...Ati flash cards 09, medications affecting fluid, electrolytes, minerals, and ...
Ati flash cards 09, medications affecting fluid, electrolytes, minerals, and ...Mary Elizabeth Francisco
 
Analisis Grafico 3 Ejercicios
Analisis Grafico 3 EjerciciosAnalisis Grafico 3 Ejercicios
Analisis Grafico 3 EjerciciosMarcos A. Fatela
 
Gestión y diseño de los instrumentos de comunicacion de marketing
Gestión y diseño de los instrumentos de comunicacion de marketingGestión y diseño de los instrumentos de comunicacion de marketing
Gestión y diseño de los instrumentos de comunicacion de marketingJordi Miro
 
Simce 2014
Simce 2014Simce 2014
Simce 201415511
 

En vedette (20)

Autoformation windev-express-17
Autoformation windev-express-17Autoformation windev-express-17
Autoformation windev-express-17
 
Poinsettias F L O A R E A C R A C I U N U L U I Pps 09[1]
Poinsettias   F L O A R E A  C R A C I U N U L U I Pps 09[1]Poinsettias   F L O A R E A  C R A C I U N U L U I Pps 09[1]
Poinsettias F L O A R E A C R A C I U N U L U I Pps 09[1]
 
Comment intégrer efficacement les réseaux sociaux dans sa stratégie e-commerce ?
Comment intégrer efficacement les réseaux sociaux dans sa stratégie e-commerce ?Comment intégrer efficacement les réseaux sociaux dans sa stratégie e-commerce ?
Comment intégrer efficacement les réseaux sociaux dans sa stratégie e-commerce ?
 
Audit fiscal cours/1er Chapitre: Démarche de l'Audit Fiscal
Audit fiscal cours/1er Chapitre: Démarche de l'Audit FiscalAudit fiscal cours/1er Chapitre: Démarche de l'Audit Fiscal
Audit fiscal cours/1er Chapitre: Démarche de l'Audit Fiscal
 
Des réseaux sociaux et des bibliothèques
Des réseaux sociaux et des bibliothèquesDes réseaux sociaux et des bibliothèques
Des réseaux sociaux et des bibliothèques
 
Planificación de temas selectos de biología II del del 09 de marzo al 17 de a...
Planificación de temas selectos de biología II del del 09 de marzo al 17 de a...Planificación de temas selectos de biología II del del 09 de marzo al 17 de a...
Planificación de temas selectos de biología II del del 09 de marzo al 17 de a...
 
Unbezahlte arbeitszeit in_Österreich
Unbezahlte arbeitszeit in_ÖsterreichUnbezahlte arbeitszeit in_Österreich
Unbezahlte arbeitszeit in_Österreich
 
E Co C Bratislava 09 Persoenlichkeit
E Co C Bratislava 09 PersoenlichkeitE Co C Bratislava 09 Persoenlichkeit
E Co C Bratislava 09 Persoenlichkeit
 
mediscript Kalendar 2013 "Lernen heisst Entdecken"
mediscript Kalendar 2013 "Lernen heisst Entdecken"mediscript Kalendar 2013 "Lernen heisst Entdecken"
mediscript Kalendar 2013 "Lernen heisst Entdecken"
 
Lernen Mit Web 2.0 (IHK Stuttgart Juli 2009)
Lernen Mit Web 2.0 (IHK Stuttgart Juli 2009)Lernen Mit Web 2.0 (IHK Stuttgart Juli 2009)
Lernen Mit Web 2.0 (IHK Stuttgart Juli 2009)
 
Kelantan
KelantanKelantan
Kelantan
 
Financial Institutions Must Support Their Clients on Twitter
Financial Institutions Must Support Their Clients on TwitterFinancial Institutions Must Support Their Clients on Twitter
Financial Institutions Must Support Their Clients on Twitter
 
Plan de mejora jefatura de sector 06 21 fts4006o
Plan de mejora jefatura de sector 06  21 fts4006oPlan de mejora jefatura de sector 06  21 fts4006o
Plan de mejora jefatura de sector 06 21 fts4006o
 
EdChang - Parallel Algorithms For Mining Large Scale Data
EdChang - Parallel Algorithms For Mining Large Scale DataEdChang - Parallel Algorithms For Mining Large Scale Data
EdChang - Parallel Algorithms For Mining Large Scale Data
 
Uv08 Dcii Tema 3 DiseñO Y Gestion Servicios
Uv08 Dcii Tema 3 DiseñO Y Gestion ServiciosUv08 Dcii Tema 3 DiseñO Y Gestion Servicios
Uv08 Dcii Tema 3 DiseñO Y Gestion Servicios
 
Practical Object Oriented Models In Sql
Practical Object Oriented Models In SqlPractical Object Oriented Models In Sql
Practical Object Oriented Models In Sql
 
Ati flash cards 09, medications affecting fluid, electrolytes, minerals, and ...
Ati flash cards 09, medications affecting fluid, electrolytes, minerals, and ...Ati flash cards 09, medications affecting fluid, electrolytes, minerals, and ...
Ati flash cards 09, medications affecting fluid, electrolytes, minerals, and ...
 
Analisis Grafico 3 Ejercicios
Analisis Grafico 3 EjerciciosAnalisis Grafico 3 Ejercicios
Analisis Grafico 3 Ejercicios
 
Gestión y diseño de los instrumentos de comunicacion de marketing
Gestión y diseño de los instrumentos de comunicacion de marketingGestión y diseño de los instrumentos de comunicacion de marketing
Gestión y diseño de los instrumentos de comunicacion de marketing
 
Simce 2014
Simce 2014Simce 2014
Simce 2014
 

Similaire à Les expressions régulières en java

Algorithmique et programmation en Pascal (résumé)
Algorithmique et programmation en Pascal (résumé)Algorithmique et programmation en Pascal (résumé)
Algorithmique et programmation en Pascal (résumé)salah fenni
 
Chapitre5 les chaînes de caractères - Copy.pptx
Chapitre5 les chaînes de caractères - Copy.pptxChapitre5 les chaînes de caractères - Copy.pptx
Chapitre5 les chaînes de caractères - Copy.pptxFerdawsBNasrBSalah
 
ALF 3 - Expressions régulières et Lexer
ALF 3 - Expressions régulières et Lexer ALF 3 - Expressions régulières et Lexer
ALF 3 - Expressions régulières et Lexer Alexandru Radovici
 
ALF 3 - Expressions régulières (2018)
ALF 3 - Expressions régulières (2018)ALF 3 - Expressions régulières (2018)
ALF 3 - Expressions régulières (2018)Alexandru Radovici
 
ALF 3 - Expressions régulières et Lexer
ALF 3 - Expressions régulières et LexerALF 3 - Expressions régulières et Lexer
ALF 3 - Expressions régulières et LexerAlexandru Radovici
 
Chapitre 10 - Les chaines de characteres.pdf
Chapitre 10 - Les chaines de characteres.pdfChapitre 10 - Les chaines de characteres.pdf
Chapitre 10 - Les chaines de characteres.pdfShiniGami0o0
 
DataDrill EXPRESS: Les équations dans DataDrill
DataDrill EXPRESS: Les équations dans DataDrill DataDrill EXPRESS: Les équations dans DataDrill
DataDrill EXPRESS: Les équations dans DataDrill Olivier Pinette
 
Bases de php - Partie 4
Bases de php - Partie 4Bases de php - Partie 4
Bases de php - Partie 4Régis Lutter
 
Cours_chaine_de_caracteres_STR_Python.pdf
Cours_chaine_de_caracteres_STR_Python.pdfCours_chaine_de_caracteres_STR_Python.pdf
Cours_chaine_de_caracteres_STR_Python.pdfABDESSELAM ARROU
 
resume algo 2023.pdf
resume algo 2023.pdfresume algo 2023.pdf
resume algo 2023.pdfsalah fenni
 
Développement informatique : Chaines de caractères et expressions regulières
Développement informatique : Chaines de caractères et expressions regulièresDéveloppement informatique : Chaines de caractères et expressions regulières
Développement informatique : Chaines de caractères et expressions regulièresECAM Brussels Engineering School
 
ch7_les chaines de caractères.pdf
ch7_les chaines de caractères.pdfch7_les chaines de caractères.pdf
ch7_les chaines de caractères.pdfFadouaBouafifSamoud
 
Support_Cours_SQL.ppt
Support_Cours_SQL.pptSupport_Cours_SQL.ppt
Support_Cours_SQL.pptSiwarAbbes1
 

Similaire à Les expressions régulières en java (16)

Algorithmique et programmation en Pascal (résumé)
Algorithmique et programmation en Pascal (résumé)Algorithmique et programmation en Pascal (résumé)
Algorithmique et programmation en Pascal (résumé)
 
Regex php
Regex phpRegex php
Regex php
 
Chapitre5 les chaînes de caractères - Copy.pptx
Chapitre5 les chaînes de caractères - Copy.pptxChapitre5 les chaînes de caractères - Copy.pptx
Chapitre5 les chaînes de caractères - Copy.pptx
 
chapitre1.ppt
chapitre1.pptchapitre1.ppt
chapitre1.ppt
 
ALF 3 - Expressions régulières et Lexer
ALF 3 - Expressions régulières et Lexer ALF 3 - Expressions régulières et Lexer
ALF 3 - Expressions régulières et Lexer
 
ALF 3 - Expressions régulières (2018)
ALF 3 - Expressions régulières (2018)ALF 3 - Expressions régulières (2018)
ALF 3 - Expressions régulières (2018)
 
ALF 3 - Expressions régulières et Lexer
ALF 3 - Expressions régulières et LexerALF 3 - Expressions régulières et Lexer
ALF 3 - Expressions régulières et Lexer
 
Chapitre 10 - Les chaines de characteres.pdf
Chapitre 10 - Les chaines de characteres.pdfChapitre 10 - Les chaines de characteres.pdf
Chapitre 10 - Les chaines de characteres.pdf
 
Chapitre1
Chapitre1Chapitre1
Chapitre1
 
DataDrill EXPRESS: Les équations dans DataDrill
DataDrill EXPRESS: Les équations dans DataDrill DataDrill EXPRESS: Les équations dans DataDrill
DataDrill EXPRESS: Les équations dans DataDrill
 
Bases de php - Partie 4
Bases de php - Partie 4Bases de php - Partie 4
Bases de php - Partie 4
 
Cours_chaine_de_caracteres_STR_Python.pdf
Cours_chaine_de_caracteres_STR_Python.pdfCours_chaine_de_caracteres_STR_Python.pdf
Cours_chaine_de_caracteres_STR_Python.pdf
 
resume algo 2023.pdf
resume algo 2023.pdfresume algo 2023.pdf
resume algo 2023.pdf
 
Développement informatique : Chaines de caractères et expressions regulières
Développement informatique : Chaines de caractères et expressions regulièresDéveloppement informatique : Chaines de caractères et expressions regulières
Développement informatique : Chaines de caractères et expressions regulières
 
ch7_les chaines de caractères.pdf
ch7_les chaines de caractères.pdfch7_les chaines de caractères.pdf
ch7_les chaines de caractères.pdf
 
Support_Cours_SQL.ppt
Support_Cours_SQL.pptSupport_Cours_SQL.ppt
Support_Cours_SQL.ppt
 

Plus de Eric Toguem

Les nouveautés de java 7 et les promesses
Les nouveautés de java 7  et les promessesLes nouveautés de java 7  et les promesses
Les nouveautés de java 7 et les promessesEric Toguem
 
Linked open data pour la consommation des informations
Linked open data pour la consommation des informationsLinked open data pour la consommation des informations
Linked open data pour la consommation des informationsEric Toguem
 
Plateformes de développement d’applications mobiles
Plateformes de développement d’applications mobilesPlateformes de développement d’applications mobiles
Plateformes de développement d’applications mobilesEric Toguem
 
Développement d’applications ussd en java
Développement d’applications ussd en javaDéveloppement d’applications ussd en java
Développement d’applications ussd en javaEric Toguem
 
Introspection reflection
Introspection reflectionIntrospection reflection
Introspection reflectionEric Toguem
 

Plus de Eric Toguem (6)

Design patterns
Design patternsDesign patterns
Design patterns
 
Les nouveautés de java 7 et les promesses
Les nouveautés de java 7  et les promessesLes nouveautés de java 7  et les promesses
Les nouveautés de java 7 et les promesses
 
Linked open data pour la consommation des informations
Linked open data pour la consommation des informationsLinked open data pour la consommation des informations
Linked open data pour la consommation des informations
 
Plateformes de développement d’applications mobiles
Plateformes de développement d’applications mobilesPlateformes de développement d’applications mobiles
Plateformes de développement d’applications mobiles
 
Développement d’applications ussd en java
Développement d’applications ussd en javaDéveloppement d’applications ussd en java
Développement d’applications ussd en java
 
Introspection reflection
Introspection reflectionIntrospection reflection
Introspection reflection
 

Les expressions régulières en java

  • 1. L ES EXPRESSIONS RÉGULIÈRES EN J AVA www.abyster.com 1
  • 2. 2 Q U ’ EST CE QU ’ UNE EXPRESSION RÉGULIÈRE ?  Chaine de caractères qui décrit un ensemble de chaines de caractères.  Exemple: l’expression régulière [0-9][a-z] décrit l’ensemble des chaines de caractères composées d’un chiffre et d’une lettre
  • 3. 3 A QUOI SERVENT LES EXPRESSIONS RÉGULIÈRES ?  De nombreuses utilités en informatique, elles servent principalement pour réaliser :  des filtres : ne conserver que certaines lignes d’un fichier texte, de la forme nom=valeur par exemple  des contrôles : vérifier qu’une donnée entrée par un utilisateur a bien le format d’une adresse IP par exemple.  des substitutions : remplacer un motif par une chaine de caractères précise.  des découpages : récupérer une partie d’une chaine de caractères par exemple découper une ligne par rapport aux « ; » dans le cas d’un fichier .csv.
  • 4. C OMPOSANTES D ’ UNE EXPRESSION 4 RÉGULIÈRES : L ES CARACTÈRES  X Le caractère X  Le caractère  t Le caractère tabulation  n Le caractère nouvelle ligne  r Le caractère retour chariot  f Le caractère saut de page  Exemple : ABtCD représente la chaine de caractère AB suivi d’une tabulation suivi de CD
  • 5. C OMPOSANTES D ’ UNE EXPRESSION 5 RÉGULIÈRES : L ES CLASSES DE CARACTÈRES  [abc] Les caractères a, b ou c  [^abc] Les caractères qui ne sont pas a, b ou c  [a-z] Un caractère de a à z  [a-zA-Z] Un caractère de a à z minuscule ou majuscule  [0-9] Un caractère numérique  Exemple : [0-9][a-z] représente une chaine de caractères constituée d’un chiffre puis d’une lettre.
  • 6. C OMPOSANTES D ’ UNE EXPRESSION 6 RÉGULIÈRES : L ES CLASSES DE CARACTÈRES PRÉDÉFINIES  . Un caractère quelconque  d Un caractère numérique : [0-9]  D Un caractère non numérique : [^0-9]  s Un caractère blanc: [ tnx0Bfr]  S Un caractère non blanc : [^s]
  • 7. C OMPOSANTES D ’ UNE EXPRESSION 7 RÉGULIÈRES : C LASSES DE CARACTÈRES POSIX  p{Lower} Une misnuscule : [a-z]  p{Upper} Une majuscule :[A-Z]  p{Alpha} Un caractère alphabétique : [p{Lower}p{Upper}]  p{Digit} Un chiffre : [0-9]  p{Alnum} Un caractère alphanumérique : [p{Alpha}p{Digit}]  p{Punct} Ponctionation : !"#$%&'()*+,-./:;<=>?@[]^_`{|}~  p{Blank} Espace ou tabulation : [ t]  p{XDigit} Un caractère hexadécimal: [0-9a-fA-F]  p{Space} Un caractère blanc[ tnx0Bfr]
  • 8. C OMPOSANTES D ’ UNE EXPRESSION 8 RÉGULIÈRES : L ES CARACTÈRES DE RÉPÉTITION  X? X une fois ou zéro fois  X* X zéro ou plusieurs fois  X+ X une fois au moins (XX*)  X{n} X n fois  X{n,} X, au moins n fois  X{n,m} X entre n et m fois
  • 9. C OMPOSANTES D ’ UNE EXPRESSION 9 RÉGULIÈRES : O PÉRATEURS LOGIQUES  XY X suivi de Y  X|Y X ou Y
  • 10. 10 E XEMPLES  Expression régulière correspondant à une adresse IP  Expression régulière correspondant à une adresse email,  Expression régulière correspondant à un numéro de téléphone,  Expression régulière correspondant à une URL,  Expression régulière correspondant à un nombre réel,
  • 11. 11 U TILISATION AVEC J AVA : REMARQUE  Le caractère a un sens pour java, il faut donc le doubler dans l’écriture des expressions régulières pour qu’il ne soit pas interprété par java. Par exemple, on écrira . à la place de
  • 12. 12 U TILISATION AVEC J AVA : L ES MÉTHODES  La classe String  public boolean matches(String regex)  public String replaceAll(String regex, String replacement)  public String[] split(String regex)
  • 13. 13 E XPRESSIONS REGULIÈRES EN J AVA  Trois classes interviennent :  Pattern : permet d'obtenir une version compilée d'une expression régulière.  Matcher : permet d'analyser une chaîne en entrée à partir d'un Pattern.  PatternSyntaxException : exception levée lorsque la syntaxe d'une expression régulière n'est pas correcte. try{ Pattern p = Pattern .compile("a*b|c"); String entree = "aabbbcab"; Matcher m = p.matcher(entree); while (m.find()) System.out.println(entree.substring(m.start(), m.end())); }catch(PatternSyntaxException pse){ }
  • 14. E XPRESSIONS REGULIÈRES EN J AVA : 14 M ÉTHODES DE PATTERN  static Pattern compile( String expreg)  Matcher matcher (CharSequence entree)  String[] split ( charSequence entree)
  • 15. E XPRESSIONS REGULIÈRES EN J AVA : 15 Q UELQUES MÉTHODES DE M ATCHER  int start()  int end()  String group()  int groupCount()  boolean find()  boolean matches()