Les expressions régulières en java

4,194 views

Published on

Les expressions régulières ou le pattrn matching sont de puissants outils pour le parsing. Le but de cette présentation est de montrer comment y arriver en Java

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
4,194
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
35
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Les expressions régulières en java

  1. 1. L ES EXPRESSIONS RÉGULIÈRES ENJ AVA www.abyster.com 1
  2. 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. 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. 4. C OMPOSANTES D ’ UNE EXPRESSION4 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. 5. C OMPOSANTES D ’ UNE EXPRESSION5 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. 6. C OMPOSANTES D ’ UNE EXPRESSION6 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. 7. C OMPOSANTES D ’ UNE EXPRESSION7 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. 8. C OMPOSANTES D ’ UNE EXPRESSION8 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. 9. C OMPOSANTES D ’ UNE EXPRESSION9 RÉGULIÈRES : O PÉRATEURS LOGIQUES  XY X suivi de Y  X|Y X ou Y
  10. 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. 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. 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. 13 E XPRESSIONS REGULIÈRES EN J AVA  Trois classes interviennent :  Pattern : permet dobtenir une version compilée dune expression régulière.  Matcher : permet danalyser une chaîne en entrée à partir dun Pattern.  PatternSyntaxException : exception levée lorsque la syntaxe dune expression régulière nest 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. 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. 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()

×